10

Jasmineライブラリを学習しているところですが、Jasmineに組み込まれているアサーションの数が非常に限られていることに気づきました。また、そのような限られた数にもかかわらず、そのアサーションの2つが冗長であるように見えることにも気づきました:toBeDefined/ toBeUndefined

言い換えれば、これらは両方ともまったく同じことをチェックしているように見えます。

expect(1).toBeDefined();
expect(undefined).not.toBeUndefined();

toBeDefinedと同じではない場合のように、これには何らかの理由がありtoBeUndefinedますか?それとも、これはジャスミンで2つの完全に等しい呼び出し方法を持つ1つのアサーションにすぎませんか?

4

1 に答える 1

10

toBeTruthyand toBeFalsy、 or toBeLessThanandについても同じことが想定されるかもしれませんtoBeGreaterThan(ただし、最後の 2 つから欠落している assert は であると思いますtoEqual)。最終的には、読みやすさとユーザーの好みに帰着します。

より完全な答えを得るには、これらの関数に対して呼び出されるコードを調べると役立つ場合があります。実行されるコードは別々のパスを通過します (toBeUndefined単純ではない!toBeDefined)。理にかなっている唯一の本当の答えは読みやすさです (または迷惑な機能要求に屈します)。https://github.com/jasmine/jasmine/tree/main/src/core/matchers

于 2013-02-06T13:40:17.727 に答える