我正在try 用cypress e2e测试来测试我的fullstack angular nestjs应用程序.
来自angular to not的服务器调用到达我运行在localhost:443
上的后端(我用0.0.0.0
和127.0.0.1
测试了它,就像其他一些请求的答案一样——没有成功).
另一方面:cy.request('http://localhost:443/...'
发送的请求实际上到达了我的后端.我能够在beforeEach
中发送请求,保存响应,拦截real请求,并将保存的响应数据提供给它.
cy.login()
进行登录调用,为我的后端构建有效会话.
describe('test', () => {
let data: any;
beforeEach(() => {
cy.login();
cy.request('http://localhost:443/load').then(response => {
data = response;
console.log('BeforeEach Response: ', data);
});
});
it('load data', () => {
cy.visit('/');
});
});
但以下beforeEach
行代码确实有效:
cy.request('http://localhost:443/load').then(response => {
data = response;
console.log('BeforeEach Response: ', data);
});
因此,以下测试确实完全有效:
describe('test', () => {
let data: any;
beforeEach(() => {
cy.login();
cy.request('http://localhost:443/load').then(response => {
data = response;
console.log('BeforeEach Response: ', data);
});
});
it('load data', () => {
cy.intercept('/load', data);
cy.visit('/');
});
});
那么,要用真正的服务器请求成功地测试我的应用程序,而不是手动发送相同的请求并删除真正的请求,我缺少什么呢?