2011-10-18 25 views
0

私はすでにJavaコードの統合テストを行っていますが、各統合テストのソースとターゲットを検出する方法があるかどうかは疑問です。たとえば、AとBの2つのコンポーネントがある場合コンポーネントAはコンポーネントBを呼び出します。これらの2つのコンポーネントを一緒にテストするための統合テストが必要です。コンポーネントBがコンポーネントAを呼び出すと、別の統合テストが必要になります。ツールまたは特定のライブラリを使用して、自動的に被呼び出し者でした。ユニットと統合テスト

public void GetPatientInfo() //testGetPatientInfo() 
{ 
    ArrayList<PatientInfo> patients = new ArrayList<PatientInfo>(); 
    String pid = "10"; 
    EMRService instance = new EMRService(); 
    instance.setPatients(patients); 
    PatientInfo p=new PatientInfo("10", "ali", 120, 200); 
    patients.add(p); 
    PatientInfo expResult = p; 
    PatientInfo result = instance.getPatientInfo(pid); 
    assertEquals(expResult, result); 
} 
+2

なぜあなたはどちらが電話しているか知りたいですか?もし彼らが同じ電話であれば、それは問題ではないはずです。もし彼らが違った電話を持っていれば、彼らは別のテストになるはずです:-)私はかなり簡単です。どの情報を呼んでいるかを知ることから得たいと思っている情報は何ですか? – corsiKa

+0

@glowcoder私たちはEMRServiceとPatientInfoの2つのクラスがあり、EMRServiceクラスはGetPatientInfoメソッドを実装していると想像してください。次の(統合)テストケースでは、PatientInfoというEMRServiceを簡単に気付くことができるので、EMRServiceクラスEMRServiceクラスが呼び出し元であったため、システムからこの統合テストはもう必要ありません(これも削除されます)。 PatientInfoは、発信者だった場合PatientInfoは –

+0

ます。public void GetPatientInfo()// testGetPatientInfo() { ArrayListの患者は=新しいArrayListを()、それに依存するため、そうでない場合、あなたはEMRServiceクラスとの統合テストを更新する必要が前にそれを削除します; 文字列pid = "10"; EMRServiceインスタンス=新しいEMRService(); instance.setPatients(patients); PatientInfo p =新しいPatientInfo( "10"、 "ali"、120、200); patients.add(p); PatientInfo expResult = p; PatientInfo result = instance.getPatientInfo(pid); assertEquals(expResult、result); } –

答えて

0

クラスの型を判別するには、instanceof演算子を使用できます。

あなたのクラス階層を仮定すると、次のようになります

interface Component { public void foo(Component bar); } 
class A implements Component {} 
class B implements Component {} 

あなたの関数は次のようになります。

public void foo(Component bar) 
{ 
    if(bar instanceof A) 
    // do one type of intergration tests 
    else if(bar is instanceof B) 
    // do other type of integration tests 
} 

別の可能性は、包囲アドバイスでAOPを使用する、またはモックを使用することができます。 (関数呼び出しの例のように)より多くの情報を提供すれば、より良い答えを提供できるかもしれません。

通常、2つの異なる統合テストを作成します.1つはAクラス、もう1つはBクラスで呼び出されたとします。

関連する問題