在angularjs程序中,如果在测试中未执行http帖子,我想使用Jasmine进行测试。
我尝试了以下代码:
expect($http.post).not().toHaveBeenCalled();
但我得到“ReferenceError:$ http未定义”
答案 0 :(得分:7)
这是旧的,但我使用以下内容对此进行测试。
expect($httpBackend.flush).toThrowError('No pending request to flush !');
答案 1 :(得分:6)
这是错误是因为你从未在测试中注入$ http。您可以使用inject function执行此操作,但对于测试$http
来电,您确实应该使用$httpBackend
对于您要确保不会调用它们的请求,您无需执行任何操作。当Angular收到不期望的请求时(由expect
上的$httpBackend
函数定义),会引发错误。因此,如果发出的请求不应该是,那么测试将从意外请求引发的错误中失败。