Ok. Вы планируете воплотить свой проект в жизнь, используя
- Firebase для хостинга, аутентификации, базы данных, облачных функций и всего такого хорошего.
- Реагируйте, чтобы показать все причудливые страницы, используя состояния, свойства, централизованный пользовательский интерфейс и логику.
- Фреймворк для тестирования, такой как Jest, чтобы убедиться, что все работает так, как задумано.
Итак, как вы вводите модульные тесты?
Я только начал изучать React и пока считаю его неплохим. Я повторно реализую один из моих личных проектов в React и хотел сделать TDD.
Допустим, вы хотите провести модульное тестирование функции в своем приложении, когда что-то происходит, когда пользователь выходит из системы. Я назову его пока handleSignOut
.
handleSignOut() { if (firebase.auth().currentUser) { firebase.auth().signOut(); return true; } }
Вы хотите проверить, возвращает ли эта функция значение true, если пользователь ранее входил в систему. Для этого вам нужно смоделировать объект firebase
, чтобы он мог успешно вернуть currentUser с помощью Jest.
импортировать Main из './index.js';
импортировать React из 'react';
импортировать фермент из 'фермента';
импортировать адаптер из 'фермента-адаптера-react-16';
import * as firebase from '../../firebase';
Enzyme.configure ({адаптер: новый адаптер ()});
описать ('handleSignout', () = ›{
beforeAll (function () {
firebase.firebase.auth = jest.fn (). mockReturnValue ({
currentUser: true,
signOut: function () {return true;}
});
});
it ('should return true', () = ›{
const wrapper = Enzyme.shallow (‹ Main / ›);
let result = wrapper.instance (). handleSignOut ();
Ожидать (результат) .toBe (истина);
});
});
Благодаря Ричарду Коце нам удалось успешно смоделировать объект огневой базы, он запустил эту ракету на Луну (и обратно). Больше интересных идей и приемов JavaScript можно найти в его блоге: www.richardkotze.com
На этом пока что, удачного дня.