在进行某些测试时,我惊讶地发现,只需将$httpBackend.whenPost
更改为expect
即可修复一些损坏的测试......
查看docs,它表示when
"创建新的请求期望。",而joinWithCassandraTable
"创建一个新的请求期望。后端定义。"。不幸的是,这对我来说意义不大......
有人可以解释这两种方法之间的区别吗?
答案 0 :(得分:5)
如docs中所述,
请求期望提供了一种对请求进行断言的方法 由应用程序制作并定义对这些请求的响应。 如果没有做出预期的请求,那么测试将失败 订单错误。
后端定义允许您为您的后端定义假后端 如果提出特定请求或不提出声明的应用程序 不是,如果提出请求,它只返回训练有素的响应。考试 无论是否在测试期间提出请求,都会通过。
使用whenPost()
定义,只要您的代码通过$http
发出POST请求,此方法就会拦截并提供响应。但是在expectPost()
的情况下,它实际上会创建对该URL的POST请求的期望,如果您的代码没有向该URL发出任何POST请求,则测试将失败。
如果发出请求,那么它也将使用模拟对象进行响应。