使用 $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
当期望调用 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