Утверждение Мокко object.should.equal (a или b) - PullRequest
0 голосов
/ 31 августа 2018

Используя mocha, как мне определить, равен ли объект более чем одному значению?

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

Кажется, не работает. Это только сравнение obj с true\n. Я пробовал разные синтаксис для этого без удачи. Все ответы, которые я нашел в Интернете, требуют, чтобы я использовал Чай, но я бы предпочел решить эту проблему с помощью Мокко.

Обратите внимание, что true и false являются лишь примерами. Я бы предпочел научиться сравнивать с чем угодно, например, obj равно пицце или яблокам

Первое сообщение, так что любые советы о том, как лучше опубликовать, также приветствуются, спасибо!

1 Ответ

0 голосов
/ 31 августа 2018

Если я правильно прочитал документацию , похоже, что .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 использует внутри.)

...