使用 $httpBackend expectGET 时要使用哪个 URL

Which URL to use when working with $httpBackend expectGET

当期望调用 API 时,我应该包括整个 URL 包括所有参数,还是只需要部分匹配?

我是否应该收听确切的电话 URL :

http://address.of.api/stuff/123?include=thing,anotherthing.name;

或者我只需要这个:

/stuff/123

$httpBackend 是 Angular 的 Mock 环境的一部分,旨在用假后端替换真实后端,或者更确切地说,通过 模仿 如何 Angular 的 $http 无需真正的后端即可工作。

尽管我很喜欢 Angular,但我发现 $httpBackend 过度设计 并且它的功能不必要地复杂:

  • 不推荐将复杂代码放入测试中的方法。你做的越多,你就越有可能在 测试代码 而不是你实际应该测试的代码中产生错误。

  • 它提倡在代码周围自由放置 $http(或抽象层次结构中的其他低级服务)的不良做法,因为您以后可以使用 $httpBackend嘲笑它。

相反,将对低级方法的任何引用隔离到您自己的专用方法中,其唯一职责是发出 http 请求,这样可以更清晰地工作。这些专用方法应该能够与真正的后端一起工作,而不是假的!

More details here on Angular testing