Отказ от ответственности: это часть упражнения для курса, который я прохожу.
Привет, я учусь на естественном языке и пишу несколько простых юнит-тестов. Компонент возвращает элемент Picker с 3 элементами. Вопрос состоит в том, чтобы утверждать, что в элементе Picker действительно есть 3 элемента. Я использую реагирующую нативную библиотеку тестирования. Какой правильный способ сделать это sh это?
appConfig. js:
const appConfig = { "activeCourses" : ["react", "react-native", "angular"]}
ComponentCourseSelector. js:
import appConfig from '../appConfig/appConfig';
const ComponentCourseSelector: () => React$Node = () => {
const styles = {
height: 50,
width: 210,
color: '#000'
}
const courses = appConfig['activeCourses'];
return (<><Picker
testID="coursesSelector"
style={styles}
>
{courses.map((prop, key) => {
return (
<Picker.Item
label={prop}
value={prop}
key={prop}
/>
);
})}
</Picker>
</>
);
};
export default ComponentCourseSelector;
ComponentCourseSelector.test. js:
import appConfig from '../appConfig/appConfig';
import { fireEvent, render } from '@testing-library/react-native'
fit('renders correct number of courses', () => {
const { getByTestId, debug } = render(
<ComponentCourseSelector/>
)
const totalActiveCourses = appConfig['activeCourses'].length
const picker = getByTestId('coursesSelector')
console.log(picker)
expect(picker.items.length).toEqual(totalActiveCourses)
});
console.log () регистрирует компонент так же, как console.log () , Я сделал следующее, что работает, но это кажется неправильным:
expect(picker['_fiber']['memoizedProps']['items'].length).toEqual(totalActiveCourses)
с отладкой (выборщик), я вижу с такими точными прямыми свойствами компонента, но я не могу получить доступ ни к одному из им.