【问题标题】:Which URL to use when working with $httpBackend expectGET使用 $httpBackend expectGET 时使用哪个 URL
【发布时间】:2015-04-24 16:58:28
【问题描述】:

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

我是否应该监听对确切 URL 的调用:

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

还是我只需要这个:

/stuff/123

【问题讨论】:

  • 不确定你在问什么。

标签: angularjs unit-testing jasmine httpbackend


【解决方案1】:

$httpBackend 是 Angular 的 Mock 环境的一部分,旨在用假的后端替换真正的后端,或者更确切地说,通过模仿 Angular 的 $http 在没有真正后端的情况下如何工作。

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

  • 不推荐在测试中抛出复杂代码的方式。您做的越多,您在该测试代码而不是您实际应该测试的内容中创建错误的可能性就越大。

  • 它助长了在代码周围随意放置 $http(或抽象层次结构中的其他低级服务)的不良做法,因为您以后可以使用 $httpBackend 来模拟它。

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

More details here on Angular testing

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-05
    • 1970-01-01
    相关资源
    最近更新 更多