programing

리액트 네이티브 모듈 테스트 방법

newstyles 2023. 2. 23. 22:08

리액트 네이티브 모듈 테스트 방법

리액트 네이티브 모듈(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 테스트를 생성해야 합니다.

이것으로, 실제로 앱을 인스톨 한 채로 에뮬레이터를 기동할 수 있습니다.

자원:

2. 유닛 테스트

네이티브 모듈의 유닛테스트를 작성하려면 네이티브모듈이 기술되어 있는 언어로 작성합니다.

자원:


Other than that, you have to mock the modules.

언급URL : https://stackoverflow.com/questions/56158398/how-to-test-react-native-module