Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unit testing 找不到模块';视图';测试时,用茉莉花和打字本进行反应_Unit Testing_React Native_Jasmine - Fatal编程技术网

Unit testing 找不到模块';视图';测试时,用茉莉花和打字本进行反应

Unit testing 找不到模块';视图';测试时,用茉莉花和打字本进行反应,unit-testing,react-native,jasmine,Unit Testing,React Native,Jasmine,我正在尝试使用Jasmine测试一个简单的(“空”)react本地组件。但是当我尝试访问任何react本机组件时,我遇到了一个错误 在我的配置文件(jasmine.json)中,我有: mypackage.json "react": "16.0.0-alpha.12", "react-native": "0.45.1", "jasmine": "^2.6.0", "ts-node": "^3.3.0", "test": "jasmine --config=jasmine.json" 我在p

我正在尝试使用Jasmine测试一个简单的(“空”)react本地组件。但是当我尝试访问任何react本机组件时,我遇到了一个错误

在我的配置文件(jasmine.json)中,我有:

mypackage.json

"react": "16.0.0-alpha.12",
"react-native": "0.45.1",

"jasmine": "^2.6.0",
"ts-node": "^3.3.0",
"test": "jasmine --config=jasmine.json"
我在package.json上的测试脚本

"react": "16.0.0-alpha.12",
"react-native": "0.45.1",

"jasmine": "^2.6.0",
"ts-node": "^3.3.0",
"test": "jasmine --config=jasmine.json"
我的测试

import * as React from 'react';
import App from './App';

import { createRenderer } from 'react-test-renderer/shallow';
import { StyleSheet, Text, View } from 'react-native';

console.log('View', View); // error
错误:

Error: Cannot find module 'View'
    at Function.Module._resolveFilename (module.js:470:15)
    at Function.Module._load (module.js:418:25)
    at Module.require (module.js:498:17)
    at require (internal/module.js:20:19)
    at Object.get View [as View] (...\expo-ts-example\node_modules\react-native\Libraries\react-native\react-native-implementation.js:56:23)
    at Object.<anonymous> (...\expo-ts-example\src\App.spec.tsx:7:21)
    at Module._compile (module.js:571:32)
    at Module.m._compile (...\expo-ts-example\node_modules\ts-node\src\index.ts:392:23)
    at Module._extensions..js (module.js:580:10)
    at Object.require.extensions.(anonymous function) [as .tsx] (...\expo-ts-example\node_modules\ts-node\src\index.ts:395:12)
错误:找不到模块“视图”
在Function.Module.\u解析文件名(Module.js:470:15)
在Function.Module.\u加载(Module.js:418:25)
at Module.require(Module.js:498:17)
根据需要(内部/module.js:20:19)
在Object.get View[作为视图](…\expo ts example\node\u modules\react native\Libraries\react native\react native implementation.js:56:23)
反对。(…\expo-ts-example\src\App.spec.tsx:7:21)
在模块处编译(模块js:571:32)
在Module.m._compile(…\expo-ts-example\node_-modules\ts-node\src\index.ts:392:23)
at Module._extensions..js(Module.js:580:10)
at Object.require.extensions.(匿名函数)[as.tsx](…\expo-ts-example\node\u-modules\ts-node\src\index.ts:395:12)
对我的组件的任何测试都会失败,因为它使用的“根”元素是
视图


为什么会出现这个错误?有什么方法可以用Jasmine代替Jest进行测试吗?

视图是本机元素,因此在本机环境之外运行Jasmine环境时,它不可用

这通常可以通过模拟整个react本机组件API(例如,通过使用类似的方法)或使用类似的浅层渲染方法来解决。两者都可以用于任何测试框架

也就是说,在编写了一段时间此类测试之后,我发现如果我重构代码,使函数中的所有逻辑与react native无关,并且端到端测试覆盖了交互,那么组件级测试将变得冗余,并且没有什么价值