У вас есть пара проблем.
Во-первых, в вашем компоненте вы делаете следующее
const character = this.props.character ? this.props.character : null;
const characterName = this.props.character.name ? this.props.character.name : null;
Это будет вызывать неопределенную ошибку каждый раз, когда this.props.character
будет нулевым, так как вы не сможете получить name
собственность от character
проп.Вам нужно найти способ обработки ответа, когда this.props.character
равен нулю.Возвращает ли это значение null для вашего компонента или использует значение по умолчанию.Выбор за вами.
Во-вторых, ваш тест не пройден, потому что вы не проходите символьную опору, на которую опирается ваш компонент, см. Первый пункт выше.Вам нужно создать объект, который является образцом персонажа, и передать его в ListItem
.Как-то так, вы можете заполнить правильную информацию.
it('renders ListItem without children', () => {
const character = { name: '<CHARACTER_NAME>', image: '<IMAGE_URI>', status: '<CHARACTER_STATUS>'};
const rendered = renderer.create( <ListItem character={character}/> ).toJSON();
expect(rendered).toBeTruthy();
})
Если вы хотите, чтобы ваш тест проходил, когда вы не проходите символическую опору, тогда вам нужно установить некоторые средства защиты, чтобы ничто не было неопределенным, когда символическая опора равна нулю.