我正在尝试编写一个简单的 react native 应用程序的一些测试用例,但我的测试用例总是失败并出现错误,显然找不到 UIManager.createView
组件
class LiveTab extends Component {
constructor(props) {
...
}
render() {
return (
<ListView
dataSource={ ... }
renderRow={ ... }
/>
);
}
}
LiveTab.propTypes = { ... };
export default LiveTab;
测试用例
...
import renderer from 'react-test-renderer';
it('LiveTab renders correctly', () => {
const tree = renderer.create(
<LiveTab ... />
);
});
错误
FAIL tests/components/LiveTab.js (14.766s) ● LiveTab renders correctly
TypeError: UIManager.createView is not a function
at Constructor.mountComponent (node_modules/react-native/Libraries/Renderer/src/renderers/native/ReactNativeBase Component.js:201:11)
at Object.mountComponent (node_modules/react-test-renderer/lib/ReactReconciler.js:46:35) at ReactCompositeComponentWrapper.performInitialMount (node_modules/react-test-renderer/lib/ReactCompositeCompon ent.js:371:34) at ReactCompositeComponentWrapper.mountComponent (node_modules/react-test-renderer/lib/ReactCompositeComponent.j s:258:21) at Object.mountComponent (node_modules/react-test-renderer/lib/ReactReconciler.js:46:35) at ReactTestComponent.mountChildren (node_modules/react-test-renderer/lib/ReactMultiChild.js:238:44) at ReactTestComponent.mountComponent (node_modules/react-test-renderer/lib/ReactTestRenderer.js:62:10) at Object.mountComponent (node_modules/react-test-renderer/lib/ReactReconciler.js:46:35) at ReactCompositeComponentWrapper.performInitialMount (node_modules/react-test-renderer/lib/ReactCompositeCompon ent.js:371:34) at ReactCompositeComponentWrapper.mountComponent (node_modules/react-test-renderer/lib/ReactCompositeComponent.j s:258:21)
我无法弄清楚这么简单的组件出了什么问题。
最佳答案
我遇到了同样的错误,因为我导入组件的模块之一没有被 babel 转换,所以需要将其列入 package.json 的白名单
参见示例:
关于javascript - React-native 测试用例失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42086205/