在量角器测试中允许 4xx HTTP 状态代码
Allow 4xx HTTP status codes in protractor tests
我正在使用 angular 开发前端并开始编写量角器端到端测试。在某些情况下,相应的后端 API 可能 return 401、404 或其他客户端错误。
这是测试登录的片段:
it('should block unregistered users', () => {
page.navigateTo()
expect(page.showsLogin()).toBe(true);
page.login("test", "test"); // http request against API happens here
expect(page.showsLogin()).toBe(true);
});
测试失败,因为 api returns 404,但这是预期的。
✗ should block unregistered users
- Expected [ Entry({ level: SEVERE, message: 'http://localhost:4200/api/v1/auth - Failed to load resource: the server responded with a status of 404 (Not Found)', timestamp: 1587332452811, type: '' }) ] not to contain <jasmine.objectContaining(Object({ level: SEVERE }))>.
我怎样才能使测试工作? (我不想直接从测试中调用 API)
或者我应该将我的 API 和测试设计为只有 200 秒吗?
有时读书很辛苦。所以我从 angular 的默认 e2e 测试开始,它还包括以下代码:
afterEach(async () => {
// Assert that there are no errors emitted from the browser
const logs = await browser.manage().logs().get(logging.Type.BROWSER);
expect(logs).not.toContain(jasmine.objectContaining({
level: logging.Level.SEVERE,
} as logging.Entry));
});
我假设任何客户端或服务器错误代码都被归类为严重日志。取消注释会使测试变为绿色 :)
我正在使用 angular 开发前端并开始编写量角器端到端测试。在某些情况下,相应的后端 API 可能 return 401、404 或其他客户端错误。
这是测试登录的片段:
it('should block unregistered users', () => {
page.navigateTo()
expect(page.showsLogin()).toBe(true);
page.login("test", "test"); // http request against API happens here
expect(page.showsLogin()).toBe(true);
});
测试失败,因为 api returns 404,但这是预期的。
✗ should block unregistered users
- Expected [ Entry({ level: SEVERE, message: 'http://localhost:4200/api/v1/auth - Failed to load resource: the server responded with a status of 404 (Not Found)', timestamp: 1587332452811, type: '' }) ] not to contain <jasmine.objectContaining(Object({ level: SEVERE }))>.
我怎样才能使测试工作? (我不想直接从测试中调用 API)
或者我应该将我的 API 和测试设计为只有 200 秒吗?
有时读书很辛苦。所以我从 angular 的默认 e2e 测试开始,它还包括以下代码:
afterEach(async () => {
// Assert that there are no errors emitted from the browser
const logs = await browser.manage().logs().get(logging.Type.BROWSER);
expect(logs).not.toContain(jasmine.objectContaining({
level: logging.Level.SEVERE,
} as logging.Entry));
});
我假设任何客户端或服务器错误代码都被归类为严重日志。取消注释会使测试变为绿色 :)