断言可以为空的参数

时间:2016-10-12 09:19:23

标签: javascript chai assertions

使用chai.js声明可空参数有什么干净的方法吗?举个例子,假设我有以下方法:

public set numberOrNull ( value : number ) {

    chai.expect( value ).to.be.a( "number" );
    this._number = value;
}

如果我将null传递给此方法,我仍然会从chai中获得异常。我当然可以选择这样的东西,但是想知道是否有更好的方法:

if ( null !== value ) {
    chai.expect( value ).to.be.a( "number" );
}

this._number = value;

1 个答案:

答案 0 :(得分:0)

您可以使用satisfy

expect(value).to.satisfy(value => value === null || typeof value === 'number');

不要让声音具有攻击性,但我认为当您要测试的相应功能不允许null作为参数值时会更清晰。从我的角度来看,这将导致一个更容易推理的功能。

编辑:忽略您使用TypeScript。如果是这样,我也会使用comment @japrescott并依赖该语言的功能。