Я довольно плохо знаком с библиотекой реагирующего тестирования, в частности с нативной библиотекой тестирования. Кажется, у меня проблемы с запросом элементов.
В приведенном ниже примере я ожидаю, что тест пройден, но элемент не может быть найден.
У меня такое чувство, что я что-то делает очень неправильно, но я не могу найти много информации об этом. Любая помощь будет принята с благодарностью [:
Edit ** Кажется, что это нормально, если я использую TestID, но разве я не смогу запросить его с помощью текстового комментария? Я не люблю использовать тестовые идентификаторы, за исключением случаев, когда это абсолютно необходимо, поскольку это не для пользователя.
Вот компонент, который я хочу протестировать
import React from 'react';
import {Text, View} from 'react-native';
import {GITHUB_COLORS} from '../constants/colors';
import styles from './RepoCard.style';
import truncate from '../utilities/truncate';
function RepoCard({repo}) {
return (
<View style={styles.card}>
{repo && (
<>
<Text style={styles.title}>{truncate(25, repo.name)}</Text>
{repo.description && (
<Text style={styles.description}>
{truncate(60, repo.description)}
</Text>
)}
{repo.language && (
<View style={styles.langauge}>
<View
style={[
styles.languageColor,
{
backgroundColor: GITHUB_COLORS[repo.language.toLowerCase()],
},
]}
/>
<Text style={styles.text}>{repo.language}</Text>
</View>
)}
</>
)}
</View>
);
}
export default RepoCard;
Вот тестовый файл
import React from 'react';
import {render, wait} from '@testing-library/react-native';
import RepoCard from './RepoCard';
import {REPOS} from '../testing/mocks/repos';
test('displays the repo name', async () => {
const testRepo = REPOS[0];
const {queryByText} = render(<RepoCard repo={testRepo} />);
const name = testRepo.name;
await wait(() => expect(queryByText(name)).toBeTruthy());
});
И, наконец, вот объект репо, я дважды проверил его, и все, что ему нужно, должно быть в нем.
export const REPOS = [
{
name: 'AndroidPython3',
language: 'Python',
description: 'This is a mock description',
},
{
name: 'arduino-i2c-scanner',
language: 'C++',
description: 'Simple Arduino I2C scanner as des',
},
];
Я также создал песочницу для кода, хотя я и не Не думаю, что он действительно может запустить тесты, так как он использует реактивную нативную сеть.
https://codesandbox.io/s/gallant-tereshkova-3biqj