gpt4 book ai didi

node.js - 在测试失败之前允许多个 AssertionErrors

转载 作者:搜寻专家 更新时间:2023-10-31 23:13:40 25 4
gpt4 key购买 nike

有没有一种传统的方法来尝试一组 assert 在测试失败之前总是被评估?

假设我的测试评估页面上某些名称的存在:

var pageContent = 'dummy page content';

//.include(haystack, needle, [message])
//Asserts that haystack includes needle.

assert.include(pageContent, 'Alice');
assert.include(pageContent, 'Bob');
assert.include(pageContent, 'John');

现在,如果 Alice 丢失,测试将失败并出现一个错误:

>AssertionError: expected 'dummy page content' to contain 'Alice'

但是我想得到通知,所有三个名称都丢失了,因为在这种情况下,一个条件失败不会阻止对其他条件进行评估。

与其编写一个包装器方法来聚合这些检查的可能输出并抛出一个错误,我希望有第三方库“专门”处理这类事情或者我可能内置的功能我在俯瞰。

最佳答案

我可以提供两种方法。

@Peter Lyons 提到的第一个依赖于将多个断言转换为对多个值的单个断言。为了使断言错误消息有用,最好在名称列表上进行断言:

var expected = ['Alice', 'Bob', 'John'];
var found = expected.filter(function(name) {
return pageContent.indexOf(name) >= 0;
}

// assuming Node's require('assert')
assert.deepEqual(found, expected);
// Example error message:
// AssertionError: ["Alice","Bob","John"] deepEqual ["Alice"]

第二种方法使用“参数化测试”。我假设您使用 BDD 风格在我的代码中指定测试用例。

describe('some page', function() {
for (var name in ['Alice', 'Bob', 'John'])
itContainsString(name);

function itContainsString(name) {
it('contains "' + name + '"', function() {
var pageContent = 'dummy page content';
assert.include(pageContent, 'Alice');
});
}
}

关于node.js - 在测试失败之前允许多个 AssertionErrors,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18500505/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com