在RN中模拟导航仪进行单元测试

时间:2016-07-28 00:42:54

标签: unit-testing react-native mocha sinon

对于我的测试,我使用mochaenzymesinon用于存根,chai用于断言,mockery用于模拟模块。

现在为模拟导航器进行地理定位的最佳机制是什么。我从rewire尝试https://github.com/jhnns/rewire注入我的sinon stubed navigator。这对我有用,但设置存根感觉很麻烦。 我喜欢https://github.com/2gis/mock-geolocation因为感觉更自然的嘲弄方式。但遗憾的是我无法使用它,因为它使用window变量。

我尝试使用mocha-jsdom之类的

import jsdom from 'mocha-jsdom';
jsdom();
const geolocate = require('mock-geolocation');

但是我收到了像

这样的错误
/..../node_modules/mock-geolocation/src/geolocate.js:225
})(window, navigator);
   ^

ReferenceError: window is not defined
    at Object.<anonymous> (/like

/..../node_modules/mock-geolocation/src/geolocate.js:225:4)
    at Module._compile (module.js:409:26)

我按照mocha --require react-native-mock/mock --compilers js:babel-register --recursive

运行我的测试

1 个答案:

答案 0 :(得分:0)

我使用mocha-jsdom而不是this.jsdom = require('jsdom-global')()而不是countdict = dict() for k in inputlist: if k not in countdict.keys(): countdict[k] = inputlist.count(k) 这似乎解决了这个问题。