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

На этом пока что, удачного дня.