regex - Mocha Chai 正则表达式是相等的

标签 regex node.js tdd mocha.js chai

我正在尝试测试生成正则表达式的方法的行为。

使用 Mocha/Chai 测试套件我有以下代码:

describe('regexTest',function () {
  it('should return a regexp', function () {
    var regex = regexTest();
    assert.equal(regex, /someregex/);
  });
});

但是上面的代码似乎不起作用。我在 Chrome 控制台中尝试过:

/a/ == /a/ 
> false

目前我发现的唯一方法是比较两个正则表达式的toString(应该相等并且我可以比较):

describe('regexTest',function () {
  it('should return a regexp', function () {
    var regex = regexTest();
    assert.equal(regex.toString(), '/someregex/');
  });
});

您知道更好的方法吗?因为我发现这不太干净......

最佳答案

由于正则表达式是一个对象,因此需要使用深度等于来比较 2 个正则表达式对象

expect(/a/).to.be.deep.equal(/a/, 'should match')

关于regex - Mocha Chai 正则表达式是相等的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31094521/

相关文章:

node.js - 如何在我的应用程序中使用Facebook登录

node.js - Windows 10 中的 npm 安装错误 ( npm install -g angular-cli )

javascript - 每个循环都有 express js 的 Node

node.js - 如何使用 super 测试和代理在 Mocha 测试中发出经过身份验证的请求?

java - 我们应该对控制台输出进行单元测试吗?

javascript - JS regex positive look behind * 应该什么时候不贪心?

java - 正则表达式挂起程序(100% CPU 使用率)

javascript - 如何在 RegEx 中分割可选参数?

regex - 使用 Vim 将 Regex Search 的结果保存到文件中

unit-testing - 如何测试仅将调用委托(delegate)给 AR 实体的聚合根方法?