【发布时间】:2017-03-23 14:11:36
【问题描述】:
所以我是在用 Mocha+Enzyme+Sinon 测试 React 应用程序。我正在尝试使用 if 语句测试一个函数,其中调用了另一个函数。 我的目标是输入 if 语句,但存根第二个函数调用。这是代码:
onSearchChange = ({value}) => {
const port = '/search-users?search_q=';
const path = [port, value].join('');
if (value.length >= 2 && value.length <= 5) {
this.getUsers(path, (array) => {
this.setState({ suggestions: fromJS(array) })
});
}
};
所以我想输入 if 语句,但不调用 getUsers() 函数。我怎样才能做到这一点? 我正在像这样监视 onSearchChange():
const wrapper = shallow(<ContentEditor />);
const spy = sinon.spy(wrapper.instance(), 'onSearchChange');
期待听到,谢谢!
【问题讨论】:
-
你不应该在你测试的对象上模拟或存根方法。在您的情况下,我假设
getUser发出一些 ajax 请求,所以存根发出请求而不是操纵您测试的类。
标签: reactjs mocha.js sinon stub enzyme