我是js现代编程和测试的新手,所以我可能使用了不正确的术语。我正在使用React和ES6语法,并在测试中使用了jest和sinon。
我想在代码中模拟/存根/替换现有函数,以便不调用它并返回预定结果。
我将在此处添加要测试的代码
import get_products from './products';
function fetchProducts() {
some_code()
get_products()
some_more_code()
}
在我的测试中
import 'fetchProducts' from '../main';
test('fetchProducts', () => {
fetchProducts();
})
我想做的是模拟get_products()函数,因此实际上并未调用它,而是在测试fetchProducts()函数时返回了预定的结果。 我看了几天的sinon帮助,但找不到答案。
谢谢!
答案 0 :(得分:0)
我没有测试过,但应该可以正常工作。
before(function() {
sinon.stub(get_products).yields(null, JSON.stringify({ hello: 'World!' }));
});
it('get_products should be called', function() {
fetchProducts();
get_products.called.should.be.equal(true);
});
让我知道它是否有效。