javascript中的测试get请求
我有下一个get请求:javascript中的测试get请求,javascript,jestjs,Javascript,Jestjs,我有下一个get请求: const getReq=()=>{ 取回( 'https://api.github.com/repos/javascript-tutorial/en.javascript.info/commits', ) 。然后((响应)=>{ 让status=null; 如果(response.status==200){ 状态=响应。状态; }否则{ 状态='错误'; } 如果(状态===200){ 警报(“成功”) }否则{ 警报('错误') } 返回response.json()
const getReq=()=>{
取回(
'https://api.github.com/repos/javascript-tutorial/en.javascript.info/commits',
)
。然后((响应)=>{
让status=null;
如果(response.status==200){
状态=响应。状态;
}否则{
状态='错误';
}
如果(状态===200){
警报(“成功”)
}否则{
警报('错误')
}
返回response.json();
})
。然后((提交)=>{
返回commits.map(i=>i.sha[0])
});
};
getReq()
我想对此请求进行3项测试:
sha
:I=>I.sha[0]
import { getReq } from './getReq';
global.fetch = jest.fn(() => {
return Promise.resolve(123);
});
description('success',()=>{
test('getfirstshahttp',async()=>{
const sha=wait getReq();
expect(sha)、toBe(123);
});
});
但是我得到了TypeError:无法读取未定义的属性“then”
如何通过上述测试解决问题?您的承诺不会被嘲笑。 您可以尝试将其添加到文件顶部
jest.mock(path_of_getReq_file, () => ({
getReq: jest.fn()
}));
为什么在定义它之后立即调用
getReq
?这意味着在替换global.fetch
@jornsharpe之前,在导入时会调用它。它应该是什么样子?您是否尝试过在定义它之后不立即调用getReq
?@jornsharpe,如何做?如何不调用函数?很难用任何不同的方式来表达:不要调用它。让我知道它是否工作。我得到错误:expect(已接收)。toEqual(预期)//deep equality
,预期:123已接收:未定义