Почему jest-dom выдает ошибку "TypeError: expect (...). Not.toBeVisible не является функцией", когда я его использую - PullRequest
0 голосов
/ 16 июня 2020

В связи с предыдущим вопросом - Как Enzyme может проверить видимость компонентов? Я попытался использовать jest-dom, чтобы специально использовать их функцию toBeVisible.

Несмотря на то, что я следую документации, я не могу заставить его работать в моем тесте и получаю сообщение об ошибке

"TypeError: expect(...).not.toBeVisible is not a function"

Полностью воспроизведено в CodeSandbox здесь Edit check-checkbox-hidden-with-jsdom

import Enzyme, { mount } from "enzyme";
import Adapter from "enzyme-adapter-react-16";
import React from "react";
import MyCheckbox from "./MyCheckbox";
import MyCheckboxesInUse from "./MyCheckboxesInUse";


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

test("Check that one checkbox is hidden and the other is visible", () => {
  const wrapper = mount(<MyCheckboxesInUse />);

  const checkboxes = wrapper.find(MyCheckbox);
  expect(checkboxes).toHaveLength(2);

  //HOW DO I CHECK THAT ONE IS VISIBLE AND THE OTHER IS NOT ?
  expect(checkboxes.get(0)).not.toBeVisible();
  expect(checkboxes.get(1)).toBeVisible();
});

1 Ответ

1 голос
/ 18 июля 2020

Я столкнулся с аналогичной проблемой. В моем случае проблема была решена с помощью следующих шагов: -

  • Добавление пакета @testing-library/jest-dom в devDependencies вместо dependencies в пакете. json файл.
  • Добавление import '@testing-library/jest-dom'; к тестам настройки. js
...