几个月前,我使用Nunit TestCase Attribute在C#中编写了数据驱动的测试用例。今天,我在Jest中寻找用于前端的相同功能。我发现jest在版本> = 23.0中为此 describe.each 和 test.each 提供了支持。我将玩笑升级到“玩笑”:“ ^ 23.2.0”,类型也一样。但它不起作用,并给出错误每个未定义。我进行了调试,发现其 jest-zone-patch 包装了 test 和 description ,并且它们仅设置了 和跳过而不是每个功能
["xit", "fit", "test", "it"].forEach(methodName => {
const originaljestFn = env[methodName];
env[methodName] = function(description, specDefinitions, timeout) {
arguments[1] = wrapTestInZone(specDefinitions);
return originaljestFn.apply(this, arguments);
};
if (methodName === "test" || methodName === "it") {
env[methodName].only = env["fit"];
env[methodName].skip = env["xit"];
我添加了
env[methodName].each = originaljestFn.each;
它奏效了。
我是开玩笑的新手,可能完全错了。我是否完全缺少某些东西,还是除了升级玩笑和类型外还需要做其他事情。 注意:类型确实具有描述和测试的每种功能。