Неожиданный вывод ферментного теста - PullRequest
0 голосов
/ 04 декабря 2018

Я новичок в Enzyme как тестовый пакет для моего проекта ReactJS.Я написал этот тест для компонента класса:

test.js:

import expect from 'expect';
import React from 'react';
import sinon from 'sinon'
import {mount, shallow} from 'enzyme';
import TestUtils from 'react-addons-test-utils';
import PageToBeTested from './PageToBeTested';

describe('Testing PageToBeTested via Enzyme', () => {
  it('onChangeMethod is called when a field is updated', () => {
    const event = {value: {"siteCode": 123}}
    const wrapper = mount(<PageToBeTested />);
    const handleOnChangeMethodSpy = sinon.spy(wrapper.instance(), 
"onChangeMethod ");
    wrapper.update(); // Force re-render
    wrapper.find('SelectInput').at(0).simulate("change", event);
    expect(handleOnChangeMethodSpy.calledOnce).toEqual(true);
  });
});

Я получаю следующее сообщение:

Testing PageToBeTested via Enzyme
       onChangeMethod is called when a field is updated:

  Error: Expected false to equal true
  + expected - actual

  -false
  +true

Вот как выглядит мой PageToBeTestedкак:

// Shortened for simplicity
onChangeMethod(event) {
    const region = event.value;
    this.setState({
      region: region
    });
    methodA(region).then(response => {
      this.setState({
        someList: methodB(response.data.sites) 
      });
    });
  }

  return (
    <Container fluid>
      <Row>
        <ConnectedComponent
          onChangeMethod={this.onChangeMethod} />
      </Row>
      {ChildComponent}
    </Container>
  );

Я следовал этому ответу stackoverflow здесь и я ожидал, что onChangeMethod будет вызван, но из-за ошибки кажется, что он вообще не стимулируется.

SelectInput является дочерним компонентом ConnectedComponent.

Могу ли я знать, что происходит в этом случае под капотом?

Спасибо.

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