简体   繁体   English

React-native测试用例失败

[英]React-native test cases fail

I'm trying to write some test cases of a simple react-native app, but my test case always fails with an error which apparently cannot find UIManager.createView 我正在尝试编写一个简单的react-native应用程序的一些测试用例,但是我的测试用例总是失败并显示无法找到UIManager.createView的错误

Component 零件

class LiveTab extends Component {
    constructor(props) {
        ...
    }
    render() {
        return (
            <ListView
                dataSource={ ... }
                renderRow={ ... }
                />
        );
    }
}

LiveTab.propTypes = { ... };

export default LiveTab;

Test case 测试用例

...
import renderer from 'react-test-renderer';

it('LiveTab renders correctly', () => {
    const tree = renderer.create(
        <LiveTab ... />
    );
});

Error 错误

FAIL tests /components/LiveTab.js (14.766s) ● LiveTab renders correctly FAIL 测试 /components/LiveTab.js(14.766s)●LiveTab正确渲染

TypeError: UIManager.createView is not a function TypeError:UIManager.createView不是函数

at Constructor.mountComponent (node_modules/react-native/Libraries/Renderer/src/renderers/native/ReactNativeBase Component.js:201:11) 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.js: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.js:258:21) 在ReactCompositeComponentWrapper的ReactCompositeComponentWrapper.performInitialMount(node_modules / react-test-renderer / lib / ReactCompositeCompon ent.js:371:34)中的Object.mountComponent(node_modules / react-test-renderer / lib / ReactReconciler.js:46:35)。位于ReactTestComponent.mountChildren(node_modules /)的Object.mountComponent(node_modules / react-test-renderer / lib / ReactReconciler.js:46:35)中的mountComponent(node_modules / react-test-renderer / lib / ReactCompositeComponent.js:258:21)在Object.mountComponent(node_modules / react-test-)的ReactTestComponent.mountComponent(node_modules / react-test-renderer / lib / ReactTestRenderer.js:62:10)处的react-test-renderer / lib / ReactMultiChild.js:238:44) renderer / lib / ReactReconciler.js:46:35)在ReactCompositeComponentWrapper.mountComponent(node_modules / react-test-renderer / lib)的ReactCompositeComponentWrapper.performInitialMount(node_modules / react-test-renderer / lib / ReactCompositeCompon ent.js:371:34) /ReactCompositeComponent.js:258:21)

I am not able to figure out what the problem is in such a simple component. 我无法弄清楚这个简单组件中的问题是什么。

I was getting the same error because one of the modules I was importing into my component was not getting transformed by babel, so it needed to be whitelisted in package.json 我得到了同样的错误,因为我导入到我的组件中的一个模块没有被babel转换,所以它需要在package.json中列入白名单

See example: 见例子:

https://facebook.github.io/jest/docs/tutorial-react-native.html#transformignorepatterns-customization https://facebook.github.io/jest/docs/tutorial-react-native.html#transformignorepatterns-customization

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM