最佳做法是什么?为什么? -
我定义了每个测试中的包装器
it('renders correctly', () => {
const wrapper = shallow(<App.WrappedComponent />);
expect(wrapper).toMatchSnapshot();
});
it('tests something else', () => {
const wrapper = shallow(<App.WrappedComponent />);
const title = wrapper.find('AppTitle');
expect(title.childAt(2).text()).toBe('React App!');
});
或
我定义了每个测试之外的包装器
const wrapper = shallow(<App.WrappedComponent />);
it('renders correctly', () => {
expect(wrapper).toMatchSnapshot();
});
it('tests something else', () => {
const title = wrapper.find('AppTitle');
expect(title.childAt(2).text()).toBe('React App!');
});
只是想在测试之外定义任何内存问题等等。
答案 0 :(得分:0)
测试代码遵循与其他代码相同的原理。 特别是,您不应不必要地重复自己。
您可以使用beforeEach
重新创建每个测试所需的对象。
现在,让我们了解一下您向我们展示的替代方案的利弊:
优点:
beforeEach
和beforeAll
)缺点:
我对通用单元测试方案的个人建议是,尽可能少的假设是:使用beforeEach
方法为每个测试重新创建您的SUT(被测对象)。
这将最大程度地减少测试之间的状态交互,并且您只能在一个地方定义它。