应该js断言是错误的?

should js assertion is wrong?

我正在使用 should.js && mocha 作为构建应用程序的测试框架。

我正在为 API 方法返回 'true',我发现 should.js 接受一切为真,但事实并非如此。

我设置了以下测试:

describe('Login', function(){

    it('Should login and return true', function(done){
        isTrue().should.be.true;
        done();
    });
});

function isTrue()
{
    return 'false';
}

Powershell + mocha 结果是:

PS C:\Dev\project> mocha --grep logi*


  Login
    √ Should login and return true


  1 passing (27ms)

我是不是漏掉了什么?

您忘记触发断言:

 isTrue().should.be.true();
                         ^--- here

如果我们检查 should.js source code 我们将看到 should.be.true 是在 true(布尔值)准确返回(与 'true' 字符串不同)时实现。

  Assertion.add('true', function() {
    this.is.exactly(true);
  });