タグ付けされた質問 「mocking」

モックと偽造は、コードまたはコンポーネントを分離して、実際に他のコンポーネントやアプリケーションの依存関係を実際に利用せずに、テスト可能なコードのユニットに対してのみユニットテストを実行できるようにする方法です。モックは、モックを検査してテストの結果を主張できるという点で偽造とは異なります。

7
このシナリオでは、単体テストのモックが適切ですか?
私はJavaで約20のメソッドを作成し、それらすべてがいくつかのWebサービスを呼び出します。これらのWebサービスはまだ利用できません。サーバー側のコーディングを続行するために、Webサービスが提供すると予想される結果をハードコーディングしました。 これらのメソッドを単体テストできますか?私の知る限り、単体テストは入力値を模倣しており、プログラムがどのように応答するかを確認しています。入力値と出力値の両方をモックすることは意味がありますか? 編集: ここでの答えは、私が単体テストケースを書くべきであることを示唆しています。 さて、既存のコードを変更せずにそれをどのように書くことができますか? 次のサンプルコード(架空のコード)を考えます。 public int getAge() { Service s = locate("ageservice"); // line 1 int age = s.execute(empId); // line 2 return age; // line 3 } では、出力をどのようにモック化しますか? 現在、「行1」をコメントアウトして、行2をに置き換えていint age= 50ます。これは正しいですか ?誰かが私にそれを行う正しい方法を教えてもらえますか?

2
TDDアプリケーションで依存関係を初期化するのは誰ですか?
私はモック/偽のオブジェクトでTDDを実装することを学ぼうとしています。私が持っている質問の1つは、TDDを実装するアプリケーションで依存関係を初期化する方法です。この記事の例 Moq 3でモックを開始すると、次のようになります。 public class OrderWriter { private readonly IFileWriter fileWriter; public OrderWriter(IFileWriter fileWriter) { this.fileWriter = fileWriter; } public void WriteOrder(Order order) { fileWriter.WriteLine(String.Format("{0},{1}", order.OrderId, order.OrderTotal)); } } この例では、コンストラクターがIFileWriterパラメーターを取ります。実際のアプリケーションの場合は実際のファイルライターを、単体テストの場合は偽のファイルライターを提供するためです。私の質問は、実際のアプリケーションでは、誰がこのパラメーターを提供するのですか?このアプリケーションの呼び出し元になると思います。コンストラクタにも依存関係がある場合はどうなりますか?呼び出し元のコードもそれに責任がありますか? たぶん、より良い方法は、ファクトリーを使用することです。この工場はどのように機能しますか?そして、工場はどのように分配されますか?上記の方法のようにコンストラクターパラメーターにありますか?

3
サービス層とDAO層のあるアプリケーションのテストでは、何をモックする必要がありますか?
私のクラスはこの構造に従っています サービス層(InputDTOを作成してDBデータにマップ) DAO層(実際にDB呼び出しを実行します) サービス層のJUnitテストを作成すると、DAO層が呼び出され、実際のDB接続とDBからのデータの取得が期待されます。 DAO層をサービス層から完全にモックする必要がありますか、それともDB接続とDBから受信したデータをモックする必要がありますか? 次に、アプリはキャッシュから特定のデータを期待します。 JUnitランタイムの場合、キャッシュがないので、これをどのように処理する必要がありますか?サービス層メソッドには、詳細を取得するためのキャッシュの検索が含まれます。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.