【问题标题】:How do I mock react-native-ibeacon in jest我如何开玩笑地模拟 react-native-ibeacon
【发布时间】:2016-12-19 00:14:14
【问题描述】:

我正在尝试模拟 react-native-ibeacon(一个原生模块,我只是想测试它是如何被调用的,包括下面 Beacons 对象中的所有函数)。

这是一个未定义信标的代码 sn-p:

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 方法时它失败了。

我错过了什么?

【问题讨论】:

  • 我认为问题在于 Beacons 依赖于 javascript 和 iOS 之间的桥梁,当我使用 jest 运行时,它并不存在。

标签: unit-testing react-native jestjs


【解决方案1】:

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

例子:

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

然后你可以这样做:

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

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

你需要弄清楚你的外部原生模块有什么特性,然后创建一个可以类似行为的模拟。

【讨论】:

  • 太好了,我会朝那个方向前进。谢谢!
猜你喜欢
  • 2023-03-27
  • 2017-12-14
  • 2022-09-27
  • 2021-05-27
  • 1970-01-01
  • 2020-11-18
  • 1970-01-01
  • 1970-01-01
  • 2021-07-02
相关资源
最近更新 更多