Mocha, Enzyme: модульное тестирование пользовательских функций в реагирующем компоненте с использованием фермента

Просто для выяснения вещей:

$('#checkbox_ID').is(":checked")

Вернет 'true' или 'false'

16
задан Frozen Crayon 23 August 2016 в 13:41
поделиться

1 ответ

Вы также можете использовать плагин chai, чтобы шпионить за пользовательскими функциями в вашем файле jsx.

// to use this pluggin add this to the top of your testing file

const chai = require("chai"), spies = require("chai-spies");
chai.use(spies);
import Foo from "./<path to component>/Foo.jsx";

describe("Foo", () => {
  it("a call to customFunction will not error", () => {
    let spy = chai.spy(Foo.prototype, "customFunciton"); // spy
    const wrapper = mount(<Foo/>);
    wrapper.setProps({bar: "baz"}); // manipulate you component in some way
    expect(spy).to.have.been.called.once();
  });
});

@ leland-richardson прав, это зависит от того, что делает ваш тест. Понимание этого поможет вам найти новые способы манипулирования вашим компонентом и, следовательно, сделать утверждения.

Еще один пример тестирования функции, которая обновляет состояние ваших компонентов.

it("function will assert new state", () => {
  const wrapper = shallow(<Foo {...props}/>);
  wrapper.instance.customFunction(); // call custom function
  wrapper.update();
  expect(wrapper.state("bar")).to.equal("new-state");
});

У Chai-spies также есть несколько цепных геттеров, которые значительно облегчают тестирование пользовательских функций. Пожалуйста, смотрите документы для более подробного объяснения.

1
ответ дан gbenavid 23 August 2016 в 13:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: