У меня есть Реальный вид, который взаимодействует с магазином . Я успешно тестировал просмотры и хранилища отдельно, но не в комбинации.Как использовать Jest для проверки вида React для проводки?
Я следил за structure documented here, но получил ТипError. Похоже, что Jest пытается зарегистрировать магазин как компонент, даже если я использую dontMock
.
Using Jest CLI v0.2.0
PASS __tests__/unit/spec/stores/ViewStore-spec.js (0.248s)
FAIL __tests__/unit/spec/components/View-spec.react.js (0.942s)
undefined
● View › it defaults to zero unread
- TypeError: /Users/matnorri/dev/projects/matnorri/web-client/src/app/scripts/components/View.react.js: /Users/matnorri/dev/projects/matnorri/web-client/src/app/scripts/stores/ViewStore.js: Cannot call method 'register' of undefined
at /Users/matnorri/dev/projects/matnorri/web-client/src/app/scripts/stores/ViewStore.js:43:31
at Object.runContentWithLocalBindings (/Users/matnorri/dev/projects/matnorri/web-client/node_modules/jest-cli/src/lib/utils.js:357:17)
...
Я включил то, что, по моему мнению, является соответствующим кодом ниже, но при необходимости может предоставить его в полном объеме.
Просмотр Jest Тест
jest.dontMock('../../../../src/app/scripts/components/View.react');
jest.dontMock('../../../../src/app/scripts/stores/ViewStore');
describe('View', function() {
var React;
var TestUtils;
var ViewComponent;
var View;
beforeEach(function() {
React = require('react/addons');
TestUtils = React.addons.TestUtils;
ViewComponent =
// Tried both lines with same effect.
// require('../../../../src/app/scripts/components/View.react.js');
require('../../../../src/app/scripts/components/View.react');
View = TestUtils.renderIntoDocument(<ViewComponent />);
});
it('defaults to zero unread', function() {
View._toString = jest.genMockFunction();
View._onChange();
expect(View.state.unread).toBe(0);
});
});
Спасибо!
Благодарим за ответы, объяснения и дополнительные ссылки. Я ценю это. Этот меня сводил с ума! –
Я знаю это чувство, тоже занял некоторое время, прежде чем узнал. Рад, что смог помочь. – Stefan
@stefan, у меня такая же проблема, но добавление объекта, назначаемого моему незафиксированному пути, похоже, ничего не делает. Предложения? '' '" unmockedModulePathPatterns ": [ "./ node_modules " "объект-правопреемником" ]' '' – 4m1r