绕过模块模拟
Jest允许在测试用例中模拟整个模块。这对于你测试被测代码是否正常调用某个模块的函数是很有用的。 然而,你可能只想模拟部分模块,剩下的则使用原生的实现。
考虑为这个 createUser
函数编写一个测试用例:
createUser.js
import fetch from 'node-fetch';
export const createUser = async () => {
const response = await fetch('https://website.com/users', {method: 'POST'});
const userId = await response.text();
return userId;
};
上述测试代码模拟 fetch
函数,这样就可以确保它在调用的时候不会发出真实的网络请求。 但是,您还需要使用一个Response
(包装在 Promise
中) 来模拟fetch