React-native测试用例失败

时间:2017-02-07 09:31:46

标签: javascript reactjs react-native jestjs testcase

我正在尝试编写一个简单的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 ... />
    );
});

错误

  

失败测试 /components/LiveTab.js(14.766s)●LiveTab渲染   正确地

     

TypeError:UIManager.createView不是函数

     

在Constructor.mountComponent(node_modules / react-native / Libraries / Renderer / src / renderers / native / ReactNativeBase)   Component.js:201:11)

     

在Object.mountComponent上   (node_modules /反应试验渲染器/ LIB / ReactReconciler.js:46:35)         在ReactCompositeComponentWrapper.performInitialMount(node_modules / react-test-renderer / lib / ReactCompositeCompon)   ent.js:371:34)         在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)         在ReactTestComponent.mountChildren(node_modules / react-test-renderer / lib / ReactMultiChild.js:238:44)         在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)         在ReactCompositeComponentWrapper.performInitialMount(node_modules / react-test-renderer / lib / ReactCompositeCompon)   ent.js:371:34)         在ReactCompositeComponentWrapper.mountComponent(node_modules / react-test-renderer / lib / ReactCompositeComponent.j)   S:258:21)

我无法弄清楚这个简单组件中的问题是什么。

1 个答案:

答案 0 :(得分:0)

我得到了同样的错误,因为我导入到我的组件中的一个模块没有被babel转换,所以它需要在package.json中列入白名单

参见示例:

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