我正在使用模拟服务人员来模拟 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());