Редактировать:
При просмотре удаленного репозитория, https://github.com/adamglang/rnTranslatedBible
Ошибка связана с отсутствующей конфигурацией jest в пакете. json.
Примечание:
Решение:
пакет. json
"jest": {
"preset": "react-native",
"moduleFileExtensions": [
"ts",
"tsx",
"js"
]
},
В соответствии с документами Jest стандартная конфигурация:
Default: ["js", "json", "jsx", "ts", "tsx", "node"]
Изменяя порядок, в результате чего "ts"
и "tsx"
перенесены в js
, проблема решена.
Предложите ответную-нативную-тестирующую библиотеку, так как у реагирующего-тест-рендерера могут быть некоторые проблемы с реагирующим нативом;
Примечание : требуется act-native-testing-library в качестве devDependancy.
Комментарий:
- someRN developer use response-native-testing-library как простой способ тестирования их компонентов; а также позволяя методам быстро утверждать значения на основе глубоко вложенного дерева компонентов.
Почему React-native-testing-library разрешает:
Вы хотите писать поддерживаемые тестирует компоненты React Native без проверки деталей реализации, но затем вам говорят, что нужно использовать Enzyme, который, как вы узнаете, не имеет адаптера React Native, что означает, что поддерживается только поверхностный рендеринг. И вы хотите сделать глубоко! Но в противном случае для глубокого рендеринга может потребоваться jsdom (React Native - это не веб!), В то время как глубокий рендеринг с помощью рендеринга-теста-рендеринга очень болезненный.
Пример
Приложение. tsx
import React from 'react';
import { StyleSheet, Text, View } from 'react-native';
export default function App() {
return (
<View style={styles.container}>
<Text>Hello World!</Text>
</View>
);
}
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: '#fff',
alignItems: 'center',
justifyContent: 'center',
},
});
test.ts
import React from "react";
import { render } from "react-native-testing-library";
import App from "../App";
describe("App", () => {
it("App", async () => {
const component = render(<App />);
expect(component.toJSON()).toMatchSnapshot();
});
});
Редактировать [Добавить снимок]
exports[`App App 1`] = `
<View
style={
Object {
"alignItems": "center",
"backgroundColor": "#fff",
"flex": 1,
"justifyContent": "center",
}
}
>
<Text>
Hello World!
</Text>
</View>
`;