当我使用带有 MSW 的 React 测试库运行测试代码时,出现错误
buffer.js:210
throw new ERR_INVALID_ARG_TYPE('target', ['Buffer', 'Uint8Array'], target);
^
TypeError [ERR_INVALID_ARG_TYPE]: The "target" argument must be an instance of Buffer or Uint8Array. Received null
at _copy (buffer.js:210:11)
at Buffer.copy (buffer.js:768:12)
at Request.<anonymous> (/Users/.../node_modules/jsdom/lib/jsdom/living/xhr/XMLHttpRequest-impl.js:864:11)
at Request.emit (events.js:315:20)
at Gunzip.<anonymous> (/Users/.../node_modules/request/request.js:1073:12)
at Gunzip.emit (events.js:315:20)
at addChunk (_stream_readable.js:295:12)
at readableAddChunk (_stream_readable.js:271:9)
at Gunzip.Readable.push (_stream_readable.js:212:10)
at Gunzip.Transform.push (_stream_transform.js:152:32) {
code: 'ERR_INVALID_ARG_TYPE'
}
一个文件中有 6 个测试函数Component.test.tsx
,所有函数都有类似的代码,例如
test('some test..', async () => {
server.use(
rest.get('/api/1/..', (req, res, ctx) => {
return res(ctx.json({...}));
}),
rest.get('/api/2/..', (req, res, ctx) => {
return res(ctx.json({...}));
}),
);
render(<Component />);
await waitFor(() => screen.getByText(/test test/i));
});
以上。
更大的问题是有时测试通过了,即使大多数时候它都失败了。
我尝试将每个测试功能划分为不同的测试文件,例如component1.test.tsx
, component2.test.tsx
, ... component6.test.tsx
。
结果真的很奇怪,因为 Jest 传递了整个文件。
我真的很想知道为什么会发生错误。