JUnit和N / XUnit都使我们能够参数化仅根据输入值和预期结果而不同的测试。换句话说,我们可以静态定义测试数据集(输入+预期结果),并让一个测试执行并验证每个输入集的结果。我们可以使用至少两个实用程序在JS中进行相同的操作。
但是,对于Java和.Net,我们可以进一步推广测试,而不是测试特定的值,我们可以使用理论(“ @Theory”和“ []来描述生成输入数据和实时生成测试数据的规则。理论]”)。
JS中有什么实用程序可以在编写测试时实现这种抽象水平?
答案 0 :(得分:1)
有点晚了,但是我想做类似的事情,只是通过创建一个具有输入/输出参数的数组并在循环中调用来解决。这只是一个基本示例,但我可能会继续努力一点,看看我能做些什么。
describe('Arrow', () => {
const theories = [
[undefined, "left-arrow", "<"],
["left", "left-arrow", "<"],
["right", "right-arrow", ">"]
];
theories.forEach(([dir, className, arrow]) => {
it(`should render the correct arrow given ${dir} direction`, () => {
const wrapper = shallow(<Arrow dir={dir} onClick={jest.fn()} />);
expect(wrapper.hasClass(className)).toEqual(true);
expect(wrapper.text().toEqual(arrow);
});
});