Angular' $ httpBackend expectPost和whenPost之间的差异

时间:2016-01-12 18:19:54

标签: angularjs jasmine

在进行某些测试时,我惊讶地发现,只需将$httpBackend.whenPost更改为expect即可修复一些损坏的测试......

查看docs,它表示when"创建新的请求期望。",而joinWithCassandraTable"创建一个新的请求期望。后端定义。"。不幸的是,这对我来说意义不大......

有人可以解释这两种方法之间的区别吗?

1 个答案:

答案 0 :(得分:5)

docs中所述,

  

请求期望提供了一种对请求进行断言的方法   由应用程序制作并定义对这些请求的响应。   如果没有做出预期的请求,那么测试将失败   订单错误。

     

后端定义允许您为您的后端定义假后端   如果提出特定请求或不提出声明的应用程序   不是,如果提出请求,它只返回训练有素的响应。考试   无论是否在测试期间提出请求,都会通过。

使用whenPost()定义,只要您的代码通过$http发出POST请求,此方法就会拦截并提供响应。但是在expectPost()的情况下,它实际上会创建对该URL的POST请求的期望,如果您的代码没有向该URL发出任何POST请求,则测试将失败。 如果发出请求,那么它也将使用模拟对象进行响应。