如何在 opencV.js 中使用 Jest?

Posted

技术标签:

【中文标题】如何在 opencV.js 中使用 Jest?【英文标题】:How to use Jest with opencCV.js? 【发布时间】:2020-04-07 01:06:37 【问题描述】:

我正在使用 jestenzyme 为我的 React 应用程序编写测试。 在我的 App 组件中 opencv.js 被导入。并且测试失败。 这是我的组件的简化版本

import '../lib/opencv/opencv';

function App () 
  console.log('App');
  return 2;


export  App ;

这是测试

import  App  from './App';

describe('App',() => 
  test('App with opencv.js', () => 
   expect(App().toBe(2));
  );
);

此测试失败并出现以下错误

 FAIL  src/App.test.jsx
 ● Test suite failed to run

ReferenceError: Module is not defined

  28 | 
  29 |   if (typeof Module === 'undefined')
> 30 |     Module = ;
     |           ^
  31 |   return cv(Module);
  32 | ));
  33 | 

  at factory (lib/opencv/opencv.js:30:11)
  at Object.<anonymous>._scriptDir (lib/opencv/opencv.js:3:13)
  at Object.<anonymous> (lib/opencv/opencv.js:2:2)
  at Object.<anonymous> (src/App.jsx:1:1)
  at Object.<anonymous> (src/App.test.jsx:1:1)

如果我评论这一行

import '../lib/opencv/opencv';

测试将通过。

我应该如何为我导入 OpenCV 的组件编写测试?

版本

反应:^16.8.3,

开玩笑:^24.9.0,

babel-jest: ^24.9.0,

opencv.js:3.4.3

【问题讨论】:

【参考方案1】:

你可能需要用这种方式重写你的导入行:

import cv from '../lib/opencv/opencv';

【讨论】:

以上是关于如何在 opencV.js 中使用 Jest?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 jest.fn() 在 jest 中使用 typescript 模拟函数

如何在 React WebApp 中集成 OpenCV.js?

如何在 webpack 中使用 jest?

如何在 React 和 Webpack 中使用 Jest

如何在 TypeScript 中使用 Jest 和 Knex 进行测试?

如何使用 Jest 在 React Native 中测试警报