我有一个用于模拟的模拟对象react-native
:
const MyMock = {
MockA: {
methodA: jest.genMockFn()
},
MockB: {
ObjectB: {
methodA: jest.genMockFn(),
methodB: jest.genMockFn(),
}
}
};
jest.mock('react-native', () => {
return MyMock;
});
我正在声明外部的对象jest.mock
因为我稍后在测试中也需要它:
describe('MyClass', () => {
beforeEach(() => {
MyMock.MockB.ObjectB.methodA.mockClear();
MyMock.MockB.ObjectB.methodB.mockClear();
});
//some other code
我收到此错误:
模组厂jest.mock()
不允许引用任何超出范围的变量。
问题是我声明MyMock
在外面jest.mock
。但据我所知,我别无选择。
那么我怎样才能使代码工作,同时保持MyMock
在外面jest.mock
?
我没有完全阅读错误消息。最后一行(稍微模糊)有这样的内容:
注意:这是防止未初始化的模拟变量的预防措施。如果确保延迟需要模拟,则变量名称前缀为mock
是允许的。
所以当我改变的时候MyMock
例如mockMyMock
, 有效。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)