如何在同一套件上使用javascript中的jest模拟不同测试用例的不同数据
我想写一些单元测试如何在同一套件上使用javascript中的jest模拟不同测试用例的不同数据,javascript,reactjs,react-native,unit-testing,jestjs,Javascript,Reactjs,React Native,Unit Testing,Jestjs,我想写一些单元测试 const setUp = (arg) => { jest.mock('@apollo/react-hooks', () => { console.log("Mocked data now is " + arg); const data = {data:arg}; const fetchMore = jest.fn(); const client = { query: jest.fn(() => new Promise((reso
const setUp = (arg) => {
jest.mock('@apollo/react-hooks', () => {
console.log("Mocked data now is " + arg);
const data = {data:arg};
const fetchMore = jest.fn();
const client = {
query: jest.fn(() => new Promise((resolve) => {
setTimeout(() => resolve(data), 100);
}))
};
return {
__esModule: true,
useMutation: jest.fn(() => [jest.fn(), null]),
useQuery: jest.fn(() => ({ data, fetchMore })),
useApolloClient: jest.fn(() => client),
};
});
}
并将其命名如下
describe('Testing details', () => {
it("test Response-1", async() =>{
const subject = await renderComponent(initialProps);
const data = require('./__mocks__/Testing');
setUp(data.responseType1)
// do some validation
})
it("test Response-2", async() =>{
const subject = await renderComponent(initialProps);
const data = require('./__mocks__/Testing');
setUp(data.responseType2)
// do some validation
})
});
但是问题是console.log(“模拟数据现在是”+arg)永远不会调用代码>,也永远不会将模拟数据传递给组件
我的想法是,我为不同的测试提供了不同的数据,我正在从test
函数注入模拟数据,并希望相应地进行验证。是否可以从测试中传递模拟数据并验证测试,或者是否有其他方法