nullableパラメータをchai.js
とアサートするためのクリーンな方法はありますか?例として、私は次のメソッドを持っているとしましょう:null可能なパラメータのアサート
public set numberOrNull (value : number) {
chai.expect(value).to.be.a("number");
this._number = value;
}
私は、このメソッドにnull
を渡すと、私はまだチャイからの例外を取得したいです。私はもちろん、このような何かのために行くことができますが、これを行うための任意のより良い方法があるかどう思っていた:
if (null !== value) {
chai.expect(value).to.be.a("number");
}
this._number = value;
私はあなたのパラメータがタイプされているので、あなたはtypescriptを使用していると仮定します。したがって、nullをチェックする必要はありません。タイプスクリプトはコンパイル時にそれを捕捉する必要があります。テストに関して。値がnullまたは数値の場合は、両方の結果を反映するために2つの独立したテストを書くべきです。 – japrescott
@japrescott私はtypescriptを書いていますが、これは私の単体テストではありません。これは私のランタイムアサーション/前提条件の一部なので、typescriptコンパイラは役に立ちません。 typescriptのすべての型もnull可能です。つまり、値を渡すかnullを渡すかは問題なく動作します。 – Mahdi
Typescript2.0が[null不可能な型]を追加しました(https://blog.mariusschulz.com/2016/09/27/typescript-2-0-non-nullable-types)。これは単体テストコードではなく、単体テストコードなので、チャイ/アサーションを野生で使用しないことを強くお勧めします。タイスクリプトと単体テストに頼って、あなたのコードが野生のバトルプルーフであることを信頼してください。あなたは野生(そのユーザー入力の場合)の型をチェックする必要がありますが、エラーをスローしないでください。ちょうど – japrescott