我正在尝试模拟react-native-ibeacon(本机模块,我只想测试它是如何调用的,包括下面Beacons对象中的所有函数)。
以下是未定义Beacons的代码段:
var React = require('react-native');
var Beacons = require('react-native-ibeacon');
jest.mock('react-native-ibeacon');
describe('beaconView', () => {
console.log('Beacons', Beacons);
Beacons.requestWhenInUseAuthorization();
it('test pass', () => {
expect(1).toBeTruthy();
});
});
当我尝试调用requestWhenInUseAuthorization方法时失败。
我错过了什么?
答案 0 :(得分:4)
你需要使用jest.mock
的第二个参数提供一个好的模拟。
示例:
jest.mock('my-module', () => ({
myFn: jest.fn();
}));
然后你可以这样做:
const myModule = require('my-module');
myModule.myFn() // calling the mock function.
您需要弄清楚外部本机模块具有哪些功能,然后创建一个行为相似的模拟。