我如何在开玩笑中模拟react-native-ibeacon

时间:2016-12-19 00:14:14

标签: unit-testing react-native jestjs

我正在尝试模拟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方法时失败。

我错过了什么?

1 个答案:

答案 0 :(得分:4)

你需要使用jest.mock的第二个参数提供一个好的模拟。

示例:

jest.mock('my-module', () => ({
    myFn: jest.fn();
}));

然后你可以这样做:

const myModule = require('my-module');

myModule.myFn() // calling the mock function.

您需要弄清楚外部本机模块具有哪些功能,然后创建一个行为相似的模拟。