Реквизит экземпляра компонента React.js нельзя смоделировать с помощью Jest?

Мне интересно, почему мой макет, похоже, не переопределяет метод onclick компонента. На самом деле это так, за исключением случаев, когда я имитирую щелчок.

/** @jsx React.DOM */
//tests/app/modules/autocompletesearchinput-test.js
jest.dontMock('../../../app/modules/AutocompleteSearchInput.jsx');

var React, TestUtils, FluxxorTestUtils, FluxConstructor, realFlux, fakeFlux, MyComponent, Component;

describe('Testing Autocomplete Search Input', function() {

    beforeEach(function() {
        React = require('react/addons');
        TestUtils = React.addons.TestUtils;
        FluxxorTestUtils = require('fluxxor-test-utils');
        FluxConstructor = require('../../../app/FluxConstructor.js');
        realFlux = FluxConstructor();
        fakeFlux = FluxxorTestUtils.fakeFlux(realFlux);
        fakeFlux.genMocksForStoresAndActions();
        // now all store and action methods are mocked for testing

        MyComponent = require('../../../app/modules/AutocompleteSearchInput.jsx');
        Component = TestUtils.renderIntoDocument(<MyComponent flux={fakeFlux} />);

    });
    it('when created, component should have AutocompleteSearchInput class', function() {
        var div = TestUtils.findRenderedDOMComponentWithClass(
            Component, 'AutocompleteSearchInput');
    });
    it('when mounted and clicked, should call searchBtnClick', function() {

        Component.searchBtnClick = jest.genMockFunction();
        TestUtils.Simulate.click(Component.refs.searchButton.getDOMNode());
        Component.searchBtnClick();
        expect(Component.searchBtnClick).toBeCalled();
    });
});

Для справки, я использовал это: Протестировать функцию компонента React с помощью Jest< /а>


person 4m1r    schedule 27.02.2015    source источник
comment
Component.searchBtnClick(); не должно быть здесь, вы просто добавляете эту строку, чтобы тест прошел правильно? Затем вы должны написать onClick (camelCase) в методе рендеринга (React проигнорирует onclick)   -  person ncuillery    schedule 27.02.2015
comment
@ncuillery, searchBtnClick точно там! Это свойство в React.createClass({}). onClick также является верблюжьим регистром в качестве атрибута тега. Тест проходит, когда я использую Component.searchBtnClick(), но когда я имитирую его. Выполняется оригинальный метод, а не макет. Мне нужен макет, потому что исходная функция вызовет исключение. Хм. Спасибо.   -  person 4m1r    schedule 27.02.2015
comment
Это ошибка Jest. github.com/facebook/jest/issues/207   -  person 4m1r    schedule 28.02.2015