我正在try 用cypress e2e测试来测试我的fullstack angular nestjs应用程序.

来自angular to not的服务器调用到达我运行在localhost:443上的后端(我用0.0.0.0127.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('/');
        });
    });

enter image description here enter image description here

但以下beforeEach行代码确实有效:

cy.request('http://localhost:443/load').then(response => {
    data = response;
    console.log('BeforeEach Response: ', data);
});

enter image description here

因此,以下测试确实完全有效:

    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('/');
        });
    });

enter image description here

那么,要用真正的服务器请求成功地测试我的应用程序,而不是手动发送相同的请求并删除真正的请求,我缺少什么呢?

推荐答案

我猜你的基本网址是cypress.json不是localhost:443.如果是这样,那么对于基于chrome的浏览器,可以将chromeWebSecurity设置为false.见https://docs.cypress.io/guides/guides/web-security#Set-chromeWebSecurity-to-false.

Node.js相关问答推荐

可以删除一个mongodb catch块

如何使用jq将依赖项添加到package.json中

NodeJS中的Vertex AI GoogleAuthError

即使DDB键不存在, node Lambda也不会失败,并返回NULL作为结果

为什么我的表单数据在我的POST请求中作为应用程序/json发送,为什么它返回错误请求错误?

Firebase-admin筛选器.或只考虑第一个WHERE子句

npm错误;无法解析依赖项:npm ERR!对等webpack@;5.x.x;来自@webpack-cli/serve@2.0.5";

谷歌应用程序脚本UrlFetchApp和nodejs-axios返回不同的结果;MyFitnessPal日记

如何从 Mongo Atlas 触发器向 GCP PubSub 发出经过身份验证的请求

使用 NPM 8 安装本地构建

在对象数组中的数组中嵌套 $lookup - Mongodb

为什么我不能将 id 发送到后端并通过 findByIdAndRemove() 删除项目?

TypeError:在使用 Jest、Supertest、Express、Typescript 进行测试时无法读取未定义的属性(读取listen)

BrowserRouter工作时为什么HashRouter不工作?

为什么需要在 NodeJS 应用程序中创建服务器?

如何在 node.js 环境中从 WebAssembly (Rust) 调用异步 JavaScript 导入函数?

调用 require 时的 const vs let

如何让should.be.false语法通过 jslint?

如何在 Joi 字符串验证中使用枚举值

FireStore 如果不存在则创建一个文档