리액트 네이티브 모듈 테스트 방법
리액트 네이티브 모듈(SDK 랩핑)을 개발했는데, mocha를 사용한 유닛 테스트 작성에 관심이 있습니다.모카는 잘 모르는데 어떻게 해야 할지 모르겠어요.
리액트 네이티브 모듈이 있습니다.react-native-mymodule
다음 작업을 통해 앱에서 사용할 수단은 다음과 같습니다.
npm install react-native-mymodule
react-native link react-native-mymodule
다음으로 모듈을 Import할 수 있습니다.
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
에러가 표시됩니다.
Error: Cannot find module 'react-native-mymodule'
리액션 네이티브 모듈을 테스트하는 가장 좋은 방법을 조언해 주실 수 있습니까?
네이티브 모듈을 테스트하려면 다음 사항을 권장합니다.
1. E2E 테스트
Node.js 독립 실행형은 네이티브 모듈을 해석할 수 없습니다.앱의 컨텍스트에서 네이티브 모듈을 테스트하려면 mocha로 유닛 테스트를 작성하는 대신 appium/webdriverio를 사용하여 e2e 테스트를 생성해야 합니다.
이것으로, 실제로 앱을 인스톨 한 채로 에뮬레이터를 기동할 수 있습니다.
자원:
- http://appium.io/docs/en/about-appium/intro/?http=de
- https://medium.com/jetclosing-engineering/react-native-device-testing-w-appium-node-and-aws-device-farm-295081129790
- https://medium.com/swlh/automation-testing-using-react-native-and-appium-on-ubuntu-ddfddc0c29fe
- https://webdriver.io/docs/api/appium.html
2. 유닛 테스트
네이티브 모듈의 유닛테스트를 작성하려면 네이티브모듈이 기술되어 있는 언어로 작성합니다.
자원:
- https://www.swiftbysundell.com/basics/unit-testing/
- https://junit.org/junit5/
- https://developer.apple.com/documentation/xctest
- https://cmake.org/cmake/help/latest/manual/ctest.1.html
Other than that, you have to mock the modules.
- https://jestjs.io/docs/en/mock-functions
- https://sinonjs.org/releases/latest/mocks/
- https://www.npmjs.com/package/mock-require
언급URL : https://stackoverflow.com/questions/56158398/how-to-test-react-native-module
'programing' 카테고리의 다른 글
각도 리소스에 의해 2D로 해석되는 문자열의 1차원 배열 (0) | 2023.02.23 |
---|---|
숫자만 입력하도록 제한하려면 어떻게 해야 하나요? (0) | 2023.02.23 |
ESLint - TypeScript용 "no-used-vars" 설정 (0) | 2023.02.23 |
네이티브 SQL 스크립트를 JPA/Hibernate에서 실행하려면 어떻게 해야 합니까? (0) | 2023.02.23 |
IE6의 JSON(IE7) (0) | 2023.02.23 |