0

Jasmine.js を使用して JS 単体テストを作成していますが、このタイプのコードが何らかのテスト原則に違反しているかどうかは不明です。

expect(someObject).toNotBe(undefined || null);

とは対照的に

expect(someObject).toNotBe(undefined);
expect(someObject).toNotBe(null);

nullとは異なりますundefinedが、私のテストの目的では、どちらであるかは気にしません (と思います)。

4

1 に答える 1

3

undefined || nullnullを返しますundefined

> undefined || null
null

最初の例は、実際には 2 番目の例の 2 行目に相当します。

expect(someObject).toNotBe(null);

また、toNotBe 非推奨です:

古いマッチャーtoNotEqualtoNotBetoNotMatch、およびtoNotContainは推奨されておらず、将来のリリースで削除される予定です。not.toEqualnot.toBenot.toMatch、 をnot.toContainそれぞれ使用するように仕様を変更してください。

null、 as false != null、 butとの等価性 (同一性ではない!) をチェックしたい場合がありundefined == nullます。

expect(someObject).not.toEqual(null);

、、なども望ましくない場合someObjectは、次のこともできます。false0[]

expect(someObject).toBeTruthy();

それ以外の場合は、独自のマッチャーを作成する必要があります。

于 2013-06-12T22:01:13.897 に答える