Assert RegExp с мокко и чай

1

Мне нужно утвердить функцию, которая должна возвращать константу RegExp, где исправлены шаблон и модификаторы. Как это можно сделать с Моккой?

Учитывая тестовый код следующим образом:

var expect = require("chai").expect;

describe("myRegExp() function", function () {
    it("returns constant pattern", function () {

        expect(myRegExp()).to.equal(/somePattern/i);

    });
});

var myRegExp = function(){
    return /somePattern/i;
}

Мы получаем AssertionError:

AssertionError: expected /somePattern/i to equal /somePattern/i
    at Context.<anonymous> (test/stackSnippetTest.js:6:31) 
Теги:
mocha
chai
assertions

1 ответ

0

RegExp можно преобразовать в String. См. Комментарии Edwin, документы RegExp, а также преобразование RegExp в String, затем обратно в RegExp

Решение заключается в использовании RegExp.toString():

var expect = require("chai").expect;

describe("myRegExp() function", function () {
    it("returns constant pattern", function () {

        expect(myRegExp().toString()).to.equal(/somePattern/i.toString());

    });
});

var myRegExp = function(){
    return /somePattern/i;
}

который работает просто отлично. В качестве альтернативы можно утверждать как RegExp.source, так и RegExp.flags:

    expect(myRegExp().source).to.equal(/somePattern/i.source);
    expect(myRegExp().flags).to.equal(/somePattern/i.flags);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню