gpt4 book ai didi

node.js - 使用 cypress.io 进行 SSR react 应用程序 e2e 测试的模拟服务器

转载 作者:行者123 更新时间:2023-11-28 20:27:46 26 4
gpt4 key购买 nike

我正在使用服务器端呈现 (SSR) 构建单页 Web 应用程序 (SPA)。

我们有一个 Node 后端 API,它在 SSR 期间从 Node 服务器调用,在初始渲染后从浏览器调用。

我想编写 e2e 测试来配置 API 响应(比如使用 nock)并同时处理浏览器调用和 SSR 服务器调用。一些伪代码:

it('loads some page (SSR mode)', () => {
mockAPI.response('/some-path', {text: "some text"}); // here i configure the mock server response
browser.load('/some-other-page'); // hit server for SSR response
expect(myPage).toContain('some text');
})

it('loads some other page (SPA mode)', () => {
mockAPI.response('/some-path', {text: "some other text"}); // here i configure another response for the same call
browser.click('#some-link'); // loads another page client side only : no SSR here
expect(myPage).toContain('some other text');
})

目前,Cypress 允许我在浏览器上模拟获取,但不能在服务器上模拟获取。

有什么办法可以实现吗?最好使用 Node 库。

最佳答案

MockTTP可以做到这一点。文档摘录:

const superagent = require("superagent");
const mockServer = require("mockttp").getLocal();

describe("Mockttp", () => {
// Start your server
beforeEach(() => mockServer.start(8080));
afterEach(() => mockServer.stop());

it("lets you mock requests, and assert on the results", () =>
// Mock your endpoints
mockServer.get("/mocked-path").thenReply(200, "A mocked response")
.then(() => {
// Make a request
return superagent.get("http://localhost:8080/mocked-path");
}).then(() => {
// Assert on the results
expect(response.text).to.equal("A mocked response");
});
);
});

关于node.js - 使用 cypress.io 进行 SSR react 应用程序 e2e 测试的模拟服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47631821/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com