#describe和#it方法在TDD反应测试中做了什么?

时间:2016-10-05 00:55:26

标签: javascript reactjs tdd chai enzyme

我使用此site的React学习TDD,但不了解作者如何获得describe it ,不是'这些通常来自Jasmine?我在他的github的作者node_modules中看不到这个包,他的tests.js也没有导入任何看似describeit的内容。这两种方法来自哪里?

import React from 'react';
import { expect } from 'chai';
import { shallow, mount, render } from 'enzyme';


describe('Test suite for User component', () => {
  it('UserComponent should exist', () => {
    let wrapper = shallow(<User />)
    expect(wrapper).to.exist;
  });
});

1 个答案:

答案 0 :(得分:0)

如果这是您将在测试套件中使用的唯一it()语句,则您实际上并不需要describe()块。

describe()构造确实存在于Jest中,它也存在于Mocha中。

describe()函数用于将某些具有共同设置并针对每个测试进行分解的测试集组合在一起。这就是为什么我说过,根据您粘贴的代码,如果您没有其他要测试的东西,则不需要该describe()函数。

因此,当您运行create-react-app时,自动加载的库之一就是Jest测试套件。

我还要重写该测试,而不是应该存在UserComponent

it('shows a user component', () => {
  let wrapper = shallow(<User />);
  expect(wrapper.find(User).length).toEqual(1);
});

因此,我建议您不仅在这里学习教程,而且在这些教程中查找他们正在使用的工具的文档。就酶而言,有一种非常不错的方法叫做find()来查找组件,它提供了一个数组,因此您可以添加.length,并且由于它只是User的一个组件,因此可以在结束.toEqual(1);