0

我正在使用模拟服务人员来模拟 api。我编写了一些单元测试,这些测试在我的本地和部署时通过。但是在 PR 构建期间,他们总是失败并出现错误:

Error: Error: connect ECONNREFUSED 127.0.0.1:80

我的单元测试

test("", async () => {
    await waitFor(() => expect(saveButtonElem).toBeEnabled());

  });

上面的元素应该被启用,因为有代码 componentDidMount() 函数,它触发了一个 api 来调用一个函数,但是在调用 api 时,它没有使用 mocks。

api 的模拟处理程序

handler.js

rest.get('url', async (req, res, ctx) => {
return res(ctx.json(true))
})

模拟服务工作者设置

服务器.js

import { setupServer } from 'msw/node';
import RootHandler from './Handlers/RootHandler';

export const server = setupServer(...RootHandler);

jest.setup.js

import { server } from './test/mocks/server';
// Establish API mocking before all tests.
   beforeAll(() => server.listen());

// Reset any request handlers that we may add during the tests,
// so they don't affect other tests.
   afterEach(() => server.resetHandlers());

 // Clean up after the tests are finished.
    afterAll(() => server.close());
4

0 回答 0