【问题标题】:Mocha assertion object.should.equal(a or b)Mocha 断言 object.should.equal(a or b)
【发布时间】:2018-08-30 21:45:12
【问题描述】:

使用 mocha 如何断言一个对象是否等于多个值?

obj.should.equal('true\n' || 'false\n', "value is invalid");

似乎不起作用。它只是将 obj 与true\n 进行比较。我为此尝试了各种不同的语法,但没有运气。我在网上找到的所有答案都要求我使用 Chai,但我更愿意使用 Mocha 来解决这个问题。

请注意,true 和 false 只是示例。我最好学习能够与任何东西进行比较,例如 obj 等于披萨或苹果

第一次发帖,欢迎任何关于发布更好的提示,谢谢!

【问题讨论】:

  • Mocha 只是测试运行器。您可能已经在使用 Chai/Should。

标签: javascript mocha.js assertion


【解决方案1】:

假设我正确阅读了the documentation,看起来好像.to.satisfy 是需要的。

由于.to.satisfy 采用返回布尔值的函数,您应该能够像这样运行测试:

expect(obj).to.satisfy(function (value) {
    var matches = [
        true,
        false,
    ];
    return matches.indexOf(value) > -1;
}, "value is invalid");

expect(obj).to.satisfy(function (value) {
    var matches = [
        'true\n',
        'false\n',
    ];
    return matches.indexOf(value) > -1;
}, "value is invalid");

expect(obj).to.satisfy(function (value) {
    var matches = [
        'pizza',
        'apples',
    ];
    return matches.indexOf(value) > -1;
}, "value is invalid");

只要您需要严格相等(Array.indexOf 在内部使用),这个通用模式应该可以工作。

【讨论】:

    猜你喜欢
    • 2021-11-28
    • 2017-01-11
    • 2015-12-31
    • 2018-01-29
    • 1970-01-01
    • 2011-09-16
    • 2011-01-07
    • 1970-01-01
    • 2015-11-20
    相关资源
    最近更新 更多