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

时间:2018-08-30 21:45:13

标签: javascript mocha assertion

使用mocha如何确定一个对象是否等于一个以上的值?

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

似乎无效。它只是将obj与true\n进行比较。我已经尝试过各种不同的语法,但是没有运气。我在网上找到的所有答案都要求我使用Chai,但是我宁愿使用Mocha来解决。

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

第一篇文章,以便更好地发表任何技巧,谢谢!

1 个答案:

答案 0 :(得分:0)

假设我正确地阅读了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在内部使用的方式),此常规模式就应该起作用。