При тестировании моментального снимка компонента я хочу протестировать только сам компонент, а не действия, состояние или функцию подключения, которые есть в Redux. Это потому, что у меня есть тесты для этих функций в других местах.
Это портит покрытие кода, потому что предполагается, что вы тестируете все функции.
Например:
export const EarningsInfo = ({ close }) => ( /* ... */ );
const mapStateToProps = _ => ({});
const mapActionsToProps = dispatch => ({
close: _ => dispatch(closeModal()),
});
export default connect(mapStateToProps, mapActionsToProps)(EarningsInfo);
Jest ожидает, что вы проверите
earningsInfo
mapStateToProps
mapActionsToProps
connect
Итак, если у вас есть простой тест, подобный этому:
import { EarningsInfo } from '../components/EarningsInfo';
it('renders correctly', () => {
const tree = renderer.create(
<EarningsInfo close={ () => null } />
).toJSON();
expect(tree).toMatchSnapshot();
});
Покрытие кода сообщает, что вы тестируете только 25% файла. Я уверен, что это работает так, как задумано.
Мой вопрос в два раза
- Правильно ли я думаю, что
mapStateToProps
,mapActionsToProps
иconnect
не нужно тестировать? - Есть ли способ игнорировать имя функции в целях покрытия?
EarningsInfo
как именованный экспорт (в дополнение к экспорту подключенного компонента по умолчанию) и просто протестировал необработанный компонентEarningsInfo
. Затем проведите несколько интеграционных тестов, чтобы убедиться, что все правильно соединено. - person kentcdodds   schedule 28.09.2016