【问题标题】:AngularJS $httpBackend 'expect' does not work correctlyAngularJS $httpBackend 'expect' 无法正常工作
【发布时间】:2015-09-18 21:35:03
【问题描述】:

全部!

使用 AngularJS、Rails、Jasmine

当我在测试中使用来自 $httpBackend 服务的expect 时, 根据official docsexpect(method, url, [data], [headers]);

在我的测试中:

describe 'when something', ->
  it 'response success', ->
    @http.expect('GET', 'acts/1', {month: '09/2015'}).respond(200)
    @scope.createAct()
    @http.flush()

,但是,当我运行测试时,引发异常:

Error: Unexpected request: GET acts/1?id=1&month=09%2F2015
Expected GET acts/1

我试过插入哈希、字符串、json等数据,结果是一样的……

只有当我使用带有数据的 url 时它才有效:

@http.expect('GET', 'acts/1?id=1&month=09%2F2015').respond(200)

所以它不能正常工作

也许有人可以说,我如何将数据插入expect 方法???

谢谢!

【问题讨论】:

    标签: angularjs jasmine


    【解决方案1】:

    我相信expect 中的data 参数只应在您发送除 URL 之外的有效负载时使用,例如当您致电POSTPATCH 时。

    对于 GET 请求,您应该在 URL 中包含编码参数,就像您写的那样:

    @http.expect('GET', 'acts/1?id=1&month=09%2F2015').respond(200)
    

    【讨论】:

    • 不,你错了。根据官方文档,我可以使用 GET 方法添加期望的数据。所以它必须工作!但它没有
    • 我正在查看 the docs,他们说:数据(可选):HTTP 请求正文 (...) -- GET 没有请求正文。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多