Тестирование функции в React JS Jest Testing - PullRequest
0 голосов
/ 31 августа 2018

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

это мой тест

it('Expect HandleFilterChange', () => {
    const handleFilterChange = jest.fn();
    handleFilterChange();
    const handleChange = wrapper.find("noJava8")
    console.log("this is what Handle Change Equals ",handleChange)
    expect(handleChange).toEqual("")
    handleChange.simulate('lowCodeCoverage', { handleFilterChange: 27 });
    expect(store.getActions()[0]).to.deep.equal(noJava8);
    expect(handleFilterChange).toHaveBeenCalled()
 })

и это мой код

handleChange = name => event => { console.log(name)
var options = {lowCodeCoverage: this.props.lowCodeCoverage, noBasePOM: this.props.noBasePOM, noJava8: this.props.noJava8};
options[name] = event.target.checked;
this.props.handleFilterChange(options);
console.log(this.handleChange)

};

<FormControlLabel
                  control={<Checkbox checked={this.props.lowCodeCoverage} 
onChange={this.handleChange('lowCodeCoverage')} 
value="lowCodeCoverage" color="primary" />}
                  label={I18n.t('filters.low-code-coverage')}
                />
                <FormControlLabel




 <WithStyles(FormControl) component="filter-options">
        <WithStyles(FormGroup)>
          <WithStyles(FormControlLabel) id="lowCodeCoverage" control={{...}} label="low-code-coverage" />
          <WithStyles(FormControlLabel) id="noBasePom" control={{...}} label="no-base-pom" />
          <WithStyles(FormControlLabel) id="noJava8" control={{...}} label="no-java-8" />
        </WithStyles(FormGroup)>

1 Ответ

0 голосов
/ 31 августа 2018

Вы можете смоделировать change событие следующим образом:

Если noJava8 - это идентификатор FormControlLabel, это мое предположение.

const handleChange = jest.fn();
wrapper = shallow(<FilterOptions.WrappedComponent handleChange= {handleChange}  />).dive();
wrapper.find('#noJava8').simulate('change');
expect(handleChange).toHaveBeenCalled();

Этот тест будет пройден.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...