摩卡断言 object.should.equal(a or b)

Mocha assertion object.should.equal(a or b)

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

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

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

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

首先 post 所以任何关于 post 更好的提示也将受到欢迎,谢谢!

假设我正在阅读 the documentation correctly, it looks as if .to.satisfy 就是所需要的。

因为 .to.satisfy 接受一个 returns 布尔值的函数,你应该能够 运行 你的测试像这样:

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 内部使用的是这种方式),这种通用模式应该有效。)