Поскольку вы используете модули CSS, ваш фактический отрисованный DOM не будет содержать div
с классом quick-filter-div
.Вместо этого класс будет что-то вроде quick-filter-div__012xyz
.Из-за этого wrapper.find('.quick-filter-div')
вернет 0 узлов.
Это можно проверить, поместив следующую строку в ваш тест сразу после строки setState
:
expect(wrapper.find('.quick-filter-div').exists()).toEqual(false)
Но этопохоже, что вы хотите проверить это щелчок button
внутри вашего div.quick-filter-div
.Разве это не правильно?В конце концов, обработчик onClick
является опорой для button
, а не div
.
И, поскольку вашему button
был присвоен идентификатор, вы можете сделать:
it("should HandlequickFilter with button click", () => {
wrapper.setProps({});
wrapper.setState({quickFilterObj:"test"});
const button = wrapper.find('button#testnew') // find button based on id selector
expect(button.exists()).toEqual(true) // make sure button is found
button.simulate("click"); // simulate click
expect(wrapper.state().quickFilterObj.New.checked).toEqual(true);
});
Если вы не дали идентификатор своей кнопке, но знали, что нажатие кнопки, которую вы хотите проверить, было первой кнопкой (а не второй), тогда вы можете попробовать:
it("should HandlequickFilter with button click", () => {
wrapper.setProps({});
wrapper.setState({quickFilterObj:"test"});
const buttons = wrapper.find('button') // find all buttons
expect(buttons).toHaveLength(2) // make sure you found 2 buttons
const button = buttons.at(0) // get the first button
button.simulate("click"); // simulate click
expect(wrapper.state().quickFilterObj.New.checked).toEqual(true);
});