我目前已使用量角器进行了一些测试。这些测试正在从WebApi检索数据。但是,我想将WebApi调用指向一个真实但经过模拟的WebApi,该WebApi仅返回要用作测试数据的对象。
例如,当前请求是:
http://localhost/myApp/api/profile/getUser/1
我想操纵此请求,因此测试将使用:
http://localhost/myApp/apiMock/profile/getUser/1
首先,我想编写一个可以更改请求标头的拦截器,但是我不知道如何使它与Protractor一起工作。我不能在量角器测试中直接使用角度,可以吗?如果可以的话,编写拦截器不是问题,我只是不知道如何将其插入量角器进行测试。
我已阅读以下文章:端到端和模拟,但是它不能满足我的需求,因为我不想一遍又一遍地调用同一网址,我想替换动态网址(的一部分)以指向模拟的api服务。
为了使自己更清楚,我不是在客户端上寻找模拟数据。我想保留API调用(我认为这是更多的E2E),但仅指向另一个返回模拟数据的API URL。
这个问题可以通过添加一个来解决 addMockModule
此处有更多详细信息:量角器addMockModule和$httpProvider拦截器
解:
exports.apiMockModule = function () {
console.log('apiMockModule executing');
var serviceId = 'mockedApiInterceptor';
angular.module('apiMockModule', [])
.config(['$httpProvider', configApiMock])
.factory(serviceId,
[mockedApiInterceptor]);
function mockedApiInterceptor() {
return {
request: function (config) {
console.log('apiMockModule intercepted');
if ((config.url.indexOf('api')) > -1) {
config.url = config.url.replace('api/', 'apiMock/');
}
return config;
},
response: function (response) {
return response
}
};
}
function configApiMock($httpProvider) {
$httpProvider.interceptors.push('mockedApiInterceptor');
}
};
然后进行加载模块的实际测试。
describe('E2E addMockModule', function() {
beforeEach(function() {
var mockModule = require('./mockedRest');
browser.addMockModule('apiMockModule', mockModule.apiMockModule);
console.log('apiMockModule loaded');
browser.get('#page');
});
it('tests the new apiMock', function() {
// your test that clicks a button that performs a rest api call.
});
});
学分到@gontard
问题内容: 我正在使用量角器在我的应用中进行角度js测试,目前大约有19个测试用例,其中一个失败了 当前,我运行所有测试用例。但是,如何仅运行一个测试用例来调试问题,例如描述为“登录页面应成功登录用户”的问题? 问题答案: Protractor的最新版本(至少)支持通常的Jasmine方法:将函数重命名为,并且仅运行其中的测试。或将函数重命名为,仅此测试将运行。
我正在使用量角器为AngularJS应用程序开发一个自动化测试套件。 在开发测试脚本时,我一直使用,因此在执行脚本时,我必须手动告诉它继续执行测试的每一步。现在我很高兴我的测试能够正确执行,并且希望删除对的调用,这样我就可以让脚本自己运行到完成。 但是,我知道,我不能只删除对的调用,而不添加一些内容,允许测试在执行下一步之前暂停/等待浏览器加载(目前,在运行对的调用后,我告诉脚本继续所用的时间足以
问题内容: 我似乎无法通过测试成功获得PhantomJS。我试图将其集成到我的项目中,但是在此之后失败了,我尝试仅运行基本的Angular Docs示例,但遇到了同样的问题。到目前为止,我的步骤: // … GhostDriver-Main-在端口9515上运行 这是与示例中相同的文件,仅具有browserName,并且seleniumAddress端口已更改: 我收到以下错误消息: 我在gith
问题内容: 我正在开发AngularJS应用,并希望使用Protractor进行端到端2端测试。我想从Browserstack上提供的测试浏览器套件中受益,并在Browserstack Automate而非本地Selenium服务器上运行测试。 如何设置系统以运行这些测试? 问题答案: 从版本3.0.0开始的量角器添加了对BrowserStack的内置支持。 您只需在您的浏览器中添加以下两个参数即
如何设置系统来运行这些测试?
我正在使用Angular 9、Node v14和e2e测试,使用Cucumber、量角器和量角器Cucumber框架。 量角器。conf.js tsconfig。e2e。json 发射json package.json 我可以在VSCode中启动调试器,但问题是每个断点都是未绑定的断点。 我还尝试在tsconfig中添加。e2e。json和我也尝试加入launch。json 问题似乎是ts节点在内