Метод «имитация» предназначен для запуска на 1 узле.0 найдено вместо - PullRequest
1 голос
/ 07 июля 2019

Я недавно завернул свой компонент в тесте с ThemeProvider.Когда я запускал свои тесты, он выдает следующую ошибку

'Метод «имитация» предназначен для запуска на 1 узле.Вместо 0 найдено '

Перед упаковкой все работало нормально.Как я могу решить эту проблему?В GitHub я обнаружил много проблем, похожих на эту, и пробовал все эти способы, но я получаю ту же ошибку.

Код перед упаковкой:

 test('handleSelect function called on option select', () => {
    const handleSelectSpy = sinon.spy();
    wrapper = mount( 
        <Dropdown handleSelect={handleSelectSpy} options={options} />
    );
    dropdown = wrapper.find('Dropdown');
    dropdown
      .find('InputBase')
      .find('[role="button"]')
      .simulate('click');
    expect(true).toBe(true);
  });
});

Код после упаковки:

 test('handleSelect function called on option select', () => {
    const handleSelectSpy = sinon.spy();
    wrapper = mount(
      <ThemeProvider>
        <Dropdown handleSelect={handleSelectSpy} options={options} />
      </ThemeProvider>,
    );
    dropdown = wrapper.find('Dropdown');
    dropdown
      .find('InputBase')
      .find('[role="button"]')
      .simulate('click');
    expect(true).toBe(true);
  });
}); 

Ошибка: раскрывающийся список - полный рендеринг DOM ›функция handleSelect, вызываемая при выборе опции Метод« simulate »предназначен для запуска на 1 узле.Вместо этого найдено 0.

1 Ответ

0 голосов
/ 07 июля 2019
.find('InputBase')

если это функция имени класса / конструктора компонента, она должна быть без кавычек:

.find(InputBase)

Внутри кавычек предполагается использовать только CSS-селектор.

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