2017-05-11 9 views
0

私は最初の単体テストを書いているうちに特にこの質問を受けました。これらのサードパーティーのコードを静的にチェックするのは正しいとは言えません。例えば、酵素/反復テストのutils関数の戻り値型やテストフレームワークのコールバック関数型などです。(静的に)第三者コードをタイプチェックする必要がありますか?

私はちょうどサードパーティのAPIが(これ)のようなものだと思った[https://github.com/airbnb/enzyme/blob/master/docs/api/shallow.md#shallowwrapper-api]は長すぎて、テストされる可能性が非常に高いです。

EDIT:私がタイプチェックと言ったとき、私はフローのような静的型チェックと単体テストではないことを明確にしました。

答えて

0

双方がここにあります

  • サードパーティのライブラリの整合性を検証するために、あなたの責任ではありません。あなたは、他の人の配達をテストするビジネスに入るべきではありません。一方、よく書かれたテストは、そのような第三者コンポーネントを探索するうえで便利です。

さらに重要なことは、よく書かれた一連のテストは、そのコンポーネントに対する期待の仕様を表しています。自動的に行使できる仕様!

意味:このようなテストを回避し、後でそのコンポーネントの新しいバージョンが期待どおりの動作をしていることを後で確認できます。

つまり、これらの2つの点のバランスをとる必要があります。たとえば、自分のコードで使用されている重要な機能にテストを限定するなどです。

0

サードパーティのパッケージをテストするコードベースで単体テストを追加する必要があるかどうかを尋ねるなら、それはしません。彼らはパッケージを更新することができ、あなたのテストは失敗します。あなたはそれを制御することはできません。

テストがあることを確認したい場合は、単位テストをコードベースにプルリクエストで追加する方がよいでしょう。それ以外の場合は、コードをテストするだけです。

他のパッケージを組み込んだエンドツーエンドのテストを書く場合は、問題ありません。しかし、私はそれらのための彼らの特定の機能をテストしません。それはそのソースに属しています。

+0

ありがとう@mariocatch!私は申し訳ありませんが、私は明確ではなかった、私は、ユニットテストを介してではなく、フローのような静的型チェッカーを介してタイプチェックを意味することを明確にするために私の質問を編集しました。 (私は、一緒にすると、不必要に冗長になると思います) –

+0

静的な型チェックでも、あなたの答えはまだ当てはまると思いますか? –

+0

@GhostCatでもこれをあなたに通知します。ありがとう! –

関連する問題