问题描述
我有一个简单的方法来构造一个随机网址,例如(https://wqwqw.com/121212 ) 121212是随机生成的。
hits
在我的考试中,我有
getCall(url) {
this.http.get(url)
}
我期望通话,但是由于url是随机的,所以我不知道它是什么,但是无论我说什么,它都说“期望1没有”。 const response = [{data:'string'}]
我不知道我在做什么错。
解决方法
您的期望检查将在执行service.getCall
之后立即执行,因此在可以定义res之前。您将需要确保测试检查在回调中运行(然后确保Jasmine测试在退出之前一直等到该回调完成),或明确指定要等待调用完成。
由于您已经为测试指定了异步函数,因此我建议使用await,这似乎也是Jasmine docs中的首选方式。
it('test get',async () => {
const res = await service.getCall('a').toPromise()
expect(res).toEqual(response)
const request = httpMock.expectOne('a') // errorr
request.flush(res)
})