Я разработал модуль React Native (упаковка SDK) и заинтересован в создании некоторых модульных тестов с использованием mocha. Я не очень знаком с мокко, но я не могу точно понять, как поступить.
У меня есть свой собственный модуль реагирования, назовите его react-native-mymodule
мой модуль, который я могу использовать в приложении, выполнив:
npm install react-native-mymodule
react-native link react-native-mymodule
Затем я могу импортировать мой модуль с:
import MySDK from "react-native-mymodule";
Я пытаюсь сделать то же самое с юнит-тестами. В моем корневом каталоге у меня есть каталог test/
котором я хочу провести все свои модульные тесты.
Мой простой тестовый файл в test/sdk.tests.js
import MySDK from "react-native-mymodule";
var assert = require('assert');
describe(‘MySDK, function() {
describe('#indexOf()', function() {
it('should return -1 when the value is not present', function() {
assert.equal([1, 2, 3].indexOf(4), -1);
});
});
});
Я пытался изменить учебник, который я нашел в Интернете по компиляции модулей, но не повезло. Это файл test/setup.js
:
import fs from 'fs';
import path from 'path';
import register from 'babel-core/register';
const modulesToCompile = [
'react-native-mymodule
].map((moduleName) => new RegExp('${moduleName}'));
const rcPath = path.join(__dirname, '..', '.babelrc');
const source = fs.readFileSync(rcPath).toString();
const config = JSON.parse(source);
config.ignore = function(filename) {
if (!(/\/node_modules\//).test(filename)) {
return false;
} else {
return false;
}
}
register(config);
.babelrc
в корневом уровне моего модуля
{
"presets": ["flow", "react-native"],
"plugins": [
["module-resolver", {
"root": [ "./js/" ]
}]
]
}
У меня есть файл test/mocha.opts
:
--require babel-core/register
--require test/setup.js
Я ./node_modules/mocha/bin/mocha
мокко с помощью: ./node_modules/mocha/bin/mocha
и получаю ошибку:
Error: Cannot find module 'react-native-mymodule'
Может кто-нибудь посоветовать мне лучший способ проверить реагировать нативные модули?