chai 检查字符串数组是否有一个带有子字符串的字符串

标签 chai

我有一个字符串数组['abc,'def','ghi','jkl']

我的字符串 B 等于 'j'

我想用 chai 检查数组中的任何元素是否有字符串 B 作为子字符串

这可能吗?我似乎无法弄清楚如何使用 chai 中的 .any 来测试数组匹配中的每个元素

我已经尝试了很多事情,包括但不限于:

expect(array).any.to.contain(string)
expect(array).any.to.have.string(string)
expect(array)to.have.any.string(string)

有没有一种优雅的方法来测试这个?

最佳答案

有几种方法可以实现这一点,具体取决于您的搜索条件。

如果您要查找单个字符,如示例中所示,您可以连接数组字符串,然后检查包含该字符的结果字符串。如果您要查找多字符字符串,此方法可能效果不佳,因为您可能会选择一个条目的末尾并成为下一个条目的开头。如果您知道您的字符串永远不会包含给定字符,那么您可以引入一个分隔符。

expect(array.join()).to.include(single_character);
// or assuming your array will never include pipe (|)
expect(array.join('|').to.include(string);

或者,您可以使用 .some() 方法搜索数组并断言结果为真。

expect(array.some(x => x.includes(string)).to.be.true;

关于chai 检查字符串数组是否有一个带有子字符串的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42113776/

相关文章:

angular - TypeScript 和 chai-as-promisied : eventually is an invalid property

node.js - Node Mocha &超测: Error: ECONNREFUSED: Connection refused

javascript - Node Mocha Chai Async - 即使它应该失败,一切都会通过

node.js - Jsdom.env 到新的 JSDOM ,迁移

node.js - 我可以在测试中连接到 mongoose 吗?

angularjs - chai-as-promised 错误地通过了测试

javascript - 我如何检查复选框是否被 Protractor、CucumberJS 和 Chai 选中?

javascript - 监视 sinon 中的 CoffeeScript 构造函数

node.js - Jasmine spyOn NodeJS

node.js - 如何使用 mocha 和 chai 正确测试 Promise?