Тестирование автозаполнения пользовательского интерфейса материалов с помощью Jest и Enzyme

Я писал шутливые тесты для своего приложения React, и у меня возникла проблема.

У меня есть компонент под названием AutocompleteDropdown, который служит оболочкой для компонента пользовательского интерфейса материала под названием AutoComplete.

Мне нужен тест, который имитирует щелчок по компоненту, а затем проверяет, был ли отображен раскрывающийся список. Проблема здесь в том, что список добавляется к основному элементу документа, а не к самому компоненту. Мне сложно понять, как проверить тело на наличие нового списка.

Я использую неглубокую визуализацию, поэтому, может быть, мне нужно визуализировать весь документ с тегами тела, а затем проверить там? Я не знаю, как это сделать, потому что я новичок в тестировании в целом. Любая помощь будет принята с благодарностью.

import React from 'react'
import Enzyme, { shallow } from 'enzyme'
import Adapter from 'enzyme-adapter-react-16'
const chai = require('chai')
const expect = chai.expect

import { AutocompleteDropdown } from './AutocompleteDropdown'
import { apps } from "constants/testData"

Enzyme.configure({ adapter: new Adapter() })

describe('Reporting component', () => {
  const component = shallow( 
    <AutocompleteDropdown
      list={ apps }
    /> 
  )

  it('Component should generate list when clicked', () => {
    component.simulate("click")

    // Somehow check for generated list?

  })

})

person Matt    schedule 08.02.2018    source источник


Ответы (1)


вы можете попробовать что-то вроде

component.find('<.className> or <#id> or <element>').simulate('click')

Некоторые дополнительные ссылки:

https://medium.com/netscape/testing-a-react-redux-app-using-jest-and-enzyme-b349324803a9

https://reactjs.org/docs/shallow-renderer.html

https://facebook.github.io/jest/docs/en/tutorial-react.html

person Alex Brazh    schedule 08.02.2018