1
我正在写一个阵营本地应用程序中,我有一个屏幕组件,我需要测试:使用自定义嘲笑与开玩笑
MyScreen.js
import React, { Component } from "react";
import CustomTable from "./CustomTable";
export default MyScreen extends Component {
render() {
return <CustomTable />;
}
}
CustomTable.ios.js
import React, { Component } from "react";
import { View } from "react-native";
import TableView from "react-native-tableview";
export default MyScreen extends Component {
render() {
return (
<View>
...some stuff
<TableView />
</View>
);
}
}
react-native-tableview
调用了一些iOS特定的代码,所以我嘲笑了它只需返回中的Android版本(CustomTable.android.js
)文件夹
__mocks__/CustomTable.ios.js
import CustomAndroidTable from "../CustomTable.android";
export const CustomTable = CustomAndroidTable;
我想要做的就是测试MyScreen.js
与玩笑,但我想它使用__mock__/CustomTable.ios
。我该如何去做到这一点?这甚至可能与Jest?我目前的测试文件看起来像:
tests/MyScreen.test.js
import React from "react";
import renderer from "react-test-renderer";
import MyScreen from "../src/MyScreen";
describe("test",() => {
it("works",() => {
jest.mock("../src/CustomTable.ios");
const tree = renderer.create(
<MyScreen />,
).toJSON();
expect(tree).toMatchSnapshot();
});
但它仍然呼吁的CustomTable.ios
原始版本。我究竟做错了什么?