如何断言后端端点已被调用
How to assert that a backend endpoint has been called?
我正在使用Protractor构建Angular应用程序的E2E测试。后端HTTP服务正在使用$httpBackend
进行模拟。到目前为止,测试看起来是这样的:
describe('foo', function () {
it('bar', function () {
var backendMockModule = function () {
angular
.module('backendMock', [])
.run(['$httpBackend', function ($httpBackend) {
$httpBackend.whenPUT('http://localhost:8080/services/foo/bar')
.respond(function (method, url, data, header) {
return [200, {}, {}];
});
}]);
};
browser.addMockModule('backendMock', backendMockModule);
browser.get('http://localhost:8001/#/foo/bar');
element(by.id('baz')).click();
// here I would like to assert that the Angular app issued a PUT to '/foo/bar' with data = {...}
});
});
这个测试比这个稍微详细一点,它测试接口和其他东西的乐观更新。但我认为这和这个问题无关,所以我去掉了其他部分。测试本身运行良好,我能够检查接口上的元素是否如预期。我没有发现的是:
如何断言使用正确的数据、方法、头等调用了后端HTTP端点
我试过这样做(添加hasBeenCalled
变量):
describe('foo', function () {
it('bar', function () {
var hasBeenCalled = false;
var backendMockModule = function () {
angular
.module('backendMock', [])
.run(['$httpBackend', function ($httpBackend) {
$httpBackend.whenPUT('http://localhost:8080/services/foo/bar')
.respond(function (method, url, data, header) {
hasBeenCalled = true;
return [200, {}, {}];
});
}]);
};
browser.addMockModule('backendMock', backendMockModule);
browser.get('http://localhost:8001/#/foo/bar');
element(by.id('baz')).click();
expect(hasBeenCalled).toBeTruthy();
});
});
但它不起作用。我不知道Protractor是如何进行测试的,但我想它会在调用addMockModule
中将函数的序列化版本发送到浏览器,而不是在与网页相同的过程中运行测试,因此我无法在测试和浏览器之间共享状态(附带问题:这是正确的吗?)。
$httpBackend.flush()
在预期(…)…
相关文章:
- 如何使jQuery插件函数可调用以供独立使用,而不在集合上操作
- D3在一个调用中绘制不同的SVG形状,没有可见性
- 如何从Java/scala调用js美化程序
- 如何调用这个匿名 JavaScript 函数
- 如何从模块链中调用函数.导出到节点中
- 我需要从php调用javascript或jquery
- Chrome开发工具(如何知道我在调用哪个javascript对象)
- 单击按钮后如何逐个调用分区,上一个分区将隐藏
- 另一个ajax调用中的Jquery ajax调用在for循环中没有按预期工作
- Twitter Bootstrap typeahead:使用“this”获取上下文/调用元素
- 如何使用asp.net在客户端点击时调用java脚本
- 如何断言后端端点已被调用
- 使用 jQuery 调用 PHP 端点的最有效方法
- 如何在asp.net中调用客户端点击事件上的2个javascript
- 在使用Protractor进行测试时,我可以用json文件替换结果,而不是调用实际的REST端点
- 在其他端点之后调用带有变量的函数(javascript / jquery)
- 保护 AJAX 调用的 PHP 端点
- 在调用REST端点之前进行身份验证
- 调用一个端点从NodeJ程序中获取数据
- 测试节点快速端点和存根第三方 API 调用