在ReactJS

时间:2018-03-05 09:39:47

标签: javascript reactjs function jestjs

我正在尝试为在包含'货币代码'的下拉列表中触发'onChange'事件时调用的函数编写测试。 我坚持为它编写测试,因为它正在调用其他多个函数,并且对这个框架来说是全新的。

我怎样才能在这里测试逻辑?

这是我迄今取得的成就!

test('should verify currency change logic', () => {
    const myComponent = shallow(<MyComponent {...props} />);
    expect(myComponent.instance().onCurrencyChange('USD').props().location.query.currency).toEqual('USD');
});

我的职能:

onCurrencyChange = (currencyCode) => {
    const { location: { query, pathname } } = this.props;
    this.props.setCountry(this.props.criteria.country, currencyCode).then(() =>
        this.props.actionUpdateURLQuery('URL_UPDATE_QUERY', pathname, extend(query, { currency: currencyCode })));
}

1 个答案:

答案 0 :(得分:0)

您可以使用expect(function()).toHaveBeenCalled()功能。但是您需要使用jest.fn()将要测试的函数设置为模拟函数。

见这里:https://facebook.github.io/jest/docs/en/expect.html#tohavebeencalled