我是编写单元测试的新手,如果这是一个愚蠢的问题,我深表歉意。如果我试图在依赖于来自服务调用的模拟数据的 Angular 控制器中测试一个方法,并且我还想模拟该服务调用(ngResource),有没有办法让 httpBackend 忽略在我的控制器中发出的其他请求在初始化?
我尝试将 whenGET 或 expectGET 定义放在 before 块中,并且只在我的测试中实例化我的控制器,但我总是发现 httpBackend 在我调用 flush() 时期待其他请求(错误:意外请求)。我不想为所有其他请求编写模拟,只是我用于此测试的那个。
当然,这可能是一个愚蠢的想法,因为我也可以直接提供假数据,而不用控制器的方法测试服务。我已经验证这有效。也许正确的答案是我不应该从控制器内测试服务。
FWIW,我也尝试过使用 Sinon fakeServer,显然它甚至没有接受 Angular 的 XHR 实现(服务器从不响应)。