在量角器/端到端测试(AngularJS)中访问$ http数据

双龙

我有一堆运行良好的单元测试,并且已经开始将Protractor E2E测试添加到我的项目中。我正在测试页面上的交互元素,但是在测试从浏览器发送的某些数据时遇到了麻烦。

例如,我想查看是否单击某个按钮会产生POST某个终结点。

我使用以下方法设置了量角器:

/*globals global*/
module.exports = function() {
    'use strict';
    var chai = require('chai')
    ,   promised = require('chai-as-promised');

    global.expect = chai.expect;

    chai.use(promised);
}();

我了解如何使用量角器进行交互:

it('send data to the "log" endpoint when clicked', function() {
    var repeater = element.all(by.repeater('finding in data.items'));

    repeater.get(0).click().then(function() {
        // $http expectation
    });
});

但是,我不知道如何$httpBackend在量角器中进行设置,因此我无法捕获由于.click()事件而发送的数据我是否需要其他模块?

在Karma / Mocha中,我将简单地:

beforeEach(module('exampleApp'));

describe('logging service', function() {
    var $httpPostSpy, LoggingService;

    beforeEach(inject(function(_logging_, $http, $httpBackend) {
        $httpPostSpy = sinon.spy($http, 'post');
        LoggingService = _logging_;
        backend = $httpBackend;
        backend.when('POST', '/api/log').respond(200);
    }));

    it('should send data to $http.post', function() [
        LoggingService.sendLog({ message: 'logged!'});
        backend.flush();
        expect($httpPostSpy.args[0][1]).to.have.property('message');
    });
});

但是我不知道如何在Protractor中获得对$httpBackendinject模块的引用

尚德马尼

端到端测试是关于测试代码的方式,类似于最终用户的方式。因此,应根据可见结果验证是否发出了远程请求,例如将数据加载到div或网格中。

仍然,如果您想验证是否发出了远程请求,则可以使用ngMockE2E模块创建一个模拟后端设置,该模块包含$htpBackend与中类似的模拟ngMock

查看$httpBackend https://docs.angularjs.org/api/ngMockE2E/service/ $ httpBackend上的文档

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

量角器中的数据驱动测试

如何等待量角器端对http请求的响应

带量角器端到端测试的电子应用

端到端测试,量角器给出错误

修改量角器测试中的http响应

在量角器中的多个/并行浏览器上进行端到端测试?

如何在docker容器中运行量角器端到端测试?

单击量角器端到端测试中隐藏元素的方法

在端到端测试中,我们应使用量角器测试网站的哪些功能?

使用ng-describe对量角器进行端到端测试

我应该使用量角器或业力进行端到端测试吗?

通过在量角器中放置特定值来进行端到端测试滑块

如何从量角器端到端测试执行shell命令?

运行量角器测试后将报告保存到数据库中

量角器-自动测试数据网格中存在的水平滚动条移动

量角器并行运行数据驱动的测试

量角器-生成测试的随机数据

量角器是否可以进行数据驱动的测试?

在量角器测试中访问Angular

在端到端量角器测试中使用TimeShift.js

为什么Angular JS团队选择量角器作为其端到端测试工具的名称?

由于Chrome驱动程序导致使用量角器的端到端测试失败

具有ng-apimock的量角器未将ngapimockid添加到所有测试的HTTP请求中

如何从量角器中的嵌套JSON结构读取数据

客户端数据到服务器端

HTTP协议如何用于实现从HTTP服务器到客户端的异步数据流发送?

量角器HTTP GET请求

在量角器测试中允许 4xx HTTP 状态代码

量角器功能测试无法加载不安全的http javascript