2011-07-07 13 views

答えて

6

、スタブ。単体テストでは、毎回同じデータと応答を返すTwitter API呼び出し用のスタブ関数を作成します。あなたは結局、TwitterのAPIをテストしているわけではありません。

+0

データベースのコードに応じて、メモリ内のSQLiteデータベースもユニットテストに最適です。 – aggsol

3

テストを最初に書くとき(TDD)、より自然にdependency injectionと呼ばれることができます。私は 3つの単純なルールの面で テスト駆動開発を記述するようになってきた長年にわたり

:TDDを行うときアンクルボブはthree rulesを実践します。彼らは: は、 単体テスト合格に失敗していない限り、何も生産 コードを書くことが許可されていません。あなたは のユニットテストを書くのに十分ではありませんが、失敗するのに十分な数は です。コンパイル 失敗は失敗です。あなたは 1つの失敗したユニットテストに合格するのに十分な以上に、 コードを書き込むことができません。

まず、 に書き込む予定の機能について、ユニットテスト を作成する必要があります。しかし、ルール2では、あなたは そのユニットテストの大部分を書くことはできません。すぐにユニットテストコードが にコンパイルできないか、アサーションに失敗すると、 は生産コードを停止して書き込む必要があります。 しかし、ルール3では、 テストコードを書くだけで、テストを にコンパイルまたはパスすることができます。

は、 が何かをコンパイルして実行することなく、全く書くことができないことを認識しています。 実際、これが本当にポイントです。 のテスト、生産コードの記述、または のリファクタリングのいずれの場合でも、私たちはすべてこれを実行して、システム を常に実行しています。実行中のテスト間の時間 は、 (秒または分)のオーダーです。さらに10 分が長すぎます。

私はいくつかの人気のスタブ・フレームワークを考えるとまたスタブ行うことができます。

関連する問題