OnClick внутри <img

Не удалось выполнить тест для события click, которое находится внутри тега изображения.

Вот код, который я пытаюсь проверить. Не удалось протестировать оба события щелчка из-за setState

<td className = "centertext">
   <input type='radio' name='req' onClick = {() => {this.handleRequestClick(titles[i][j].RequestId, titles[i][j].Name, titles[i][j].Content)}} />
 </td>
 <td className = "modal-add-window-td">{i}</td>
 <td className = "modal-add-window-td">
   <div>{titles[i][j].Name}</div>
 </td>
 <td className = "modal-add-window-td">
   <img className='request-info'src = {infoSVG} alt='Info' onClick = {() => {this.showDescription(titles[i][j].Name, titles[i][j].Description)}} />
 </td>

Вот что я пытался сделать до сих пор, но получил следующее сообщение: Метод props предназначен для запуска на 1 узле. Вместо этого найдено 0.

Использование Jest и фермента - маршрутизация памяти и монтирование компонентов

     it("Test click event on show Description", () => {
     wrapper.find('AddViewModal').setState({
        titles:[[{
         Requests:{
           Name:""
           }}
       ]]

       }),
      wrapper.update();  

  expect(wrapper.find('AddViewModal').find('img').props().src).toEqual('../../Images/chartImages/info.svg')
     //wrapper.find('AddViewModal').find('img[alt = "Info"]').simulate('click')

     });

ты пробовал это wrapper.find('AddViewModal').find('img').simulate('click') ?

AlexZvl 01.04.2019 20:27

Я сделал - узел не может быть найден

user 9191 01.04.2019 20:40

что такое AddViewModal? остальная часть кода действительна? это работает?

AlexZvl 01.04.2019 20:44

имя класса. Да, остальная часть кода действительна, и события кликов проверены.

user 9191 01.04.2019 20:50

@AlexandrZavali есть идеи?

user 9191 02.04.2019 13:31

не могли бы вы создать репо, чтобы я мог повторить?

AlexZvl 02.04.2019 13:45
Could not find module in path: '../../components/SideLabels/sideLabels' relative to '/src/containers/Schedule/Schedule.js'
AlexZvl 02.04.2019 14:36

не беспокойтесь об этом - это что-то другое.

user 9191 02.04.2019 14:48
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
1
8
445
2

Ответы 2

Вы пытались найтиГде?

element.findWhere(node => node.hasClass("request-info"))

Если это не так, можете ли вы проверить, проходит ли findWhere целевой узел?

состояние набора было неверным, как только я выясню - тест пройден, и покрытие было затронуто

user 9191 05.04.2019 14:30

спасибо за помощь, но небольшая ошибка в setstate иногда может занять несколько часов тестирования

user 9191 05.04.2019 16:42

один из ваших предыдущих комментариев да, wrapper.find('AddViewModal').find('img').simulate('click') . Я не знал, что вы можете найти ('img') подобное.

user 9191 05.04.2019 16:44

@user9191 user9191 рассмотрите возможность пометить это как правильный ответ;)

AlexZvl 05.04.2019 16:45

Убедитесь, что вы получили правильное состояние, иначе узел не будет найден.

   it("Test click event on show Description", () => {
   baseProps.onClick.mockClear();
   wrapper.find('Component').setState({
     Requests: [{
      Name: 'testing'
    }]  
  })
 wrapper.update();
 wrapper.find('Componentl').find('img').simulate('click')

Другие вопросы по теме