作成ユニット試験:何かを念頭に置くことが重要する場合、ソフトウェア。[定休日]

StackOverflow https://stackoverflow.com/questions/2151726

  •  23-09-2019
  •  | 
  •  

質問

ということかんの新しいプロジェクト、品質が最重要課題となっている。

において豊富なユニット試験としても人気があります。への意欲を期待できるように、コンピュータ-アーキテクチャは容易に活性化さらにユニットの実験をしていますか?

編集 :この一回前よりいすることができる現在どのように行うか話し合っていデカップリングスインスタンスコードからの授業に行動できるものがユニットテスト。どちらかと言えばそういうデザインのヒントを求めている。

役に立ちましたか?

解決

テストのしやすさは、ハリウッドの原理別名、これを実現するために、現在推奨される方法は、依存性逆転を介して行われ、あなたの方法は、テストコード(モック、偽物など)との依存関係を持っているの多くと置き換えることができること伝わってくる:「ドン「tは私たちを呼んで、私たちはあなたを呼ぶことにします。」言い換えれば、あなたのコードは、「ものを見ていない、物事を頼む。」必要があります。

あなたは簡単に多くのものへの依存関係を持つことができ、コードを見つけることができますこの方法を考え始めると。あなたが良いアーキテクチャに付着することにより、他のオブジェクトが、データベース、ファイル、環境変数、OSのAPI、グローバル、シングルトン、などに依存しているか、あなたは適切な層を経由してそれらを提供することにより、ほとんどのこれらの依存関係のを最小限に抑えるだけでなく。それはテストに時間が来るときので、あなたは単にモックデータオブジェクトとデータオブジェクトを置き換えることができ、テストデータの完全な作業データベースを必要としません。

これはまた、あなたのオブジェクトの実行からに慎重にソートオブジェクト・建設アウト持っていることを意味し。コンストラクタに配置された「新しい」文は、テストモックと交換することは非常に困難である依存関係を生成します。これは、コンストラクタの引数経由でこれらの依存関係を渡す方が良いでしょう。

また、心の中でデメテルの法則を保ちます。深いオブジェクトに複数の層を掘るか、あるいはあなたは隠された依存関係を作成しないでください。 (小石)Flintstones.Wilma.addChildを呼び出します。あなたが本当に「フリントストーン」への依存だと思ったものを意味「フリントストーン」と「ウィルマ」の両方に依存している。

他のヒント

あなたのコードは卑しい切り離され、それは非常に凝集することによってテスト可能であることを確認してください。そして、あなたはユニットテストの間に依存関係をモックするためのツールをあざける使用する方法を知っていることを確認します。

私はあなたのことを、 SOLID原則のに慣れるすることをお勧めいたしますより多くのテスト可能なコードを書くことができます。

きたいと思いましたので質問:

一部のランダムうな思想を貫いています。

  • 定義するインターフェイス: 切り離し、機能モジュールから、決定され、それがどのようにします。ユーザーインターフェイスは、"契約"とは、開発者の異なるモジュールです。その場合は試験の操作インタフェースを使いことを確認のチームはそれぞれに適した他のモジュールとしてブラックボックスが独立する

  • の構築、試験の少なくとも基本的な機能のUIです。 一度プロジェクトで"会話"には、できそうとも言えないので何がそうではないのかというこ...がいない場合は添い寝ます。(ボーナス:場合は開発者が利用のUIんを迅速に特定する欠点にも使いやすさ、作業フロー など.)

  • 試験の実践的なレベル: により自信をすることの少な仕事のしやすさを組み合わせに働きます。

  • 記少なくとも一つの試験のための各機能の仕様アルバイトを始める前に、符号といいます。 後に、その特徴は以下のとおりですの理由でお客様にお買い製品です。必ずしめるために設計されていかないといけないと考えてい!

  • なを満足することがで何もすることになっているのです;ついてアフターサービスについて その ない することになっているのです! 飼料で不良データの使用で不合理は、切断のネットワークケーブル中のデータ転送を実行するととも衝突する出願に関する.お客様。

幸運を祈っています。

あなたのテストは今まであなたの条件として良いようになります。彼らはあなたがすべて一度にアップフロントを思い付く、彼らはあなたが機能を追加すると、一度に一つを思い付くことを要件とすることができ、または、彼らはあなたがそれを出荷した後、あなたが思い付くし、人々が開始することを要件ことができることを要件することができバグのボートの負荷を報告するが、誰が、または物が行うことになっているまさに文書化しないだろうことができれば、あなたは良いテストを書くことはできません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top