0

重複の可能性:
次のコードの junit テスト クラス

次のコードのjunitテストクラスを作成するにはどうすればよいですか?

パッケージサンプル;

パブリック クラス Fortest {

UserDao userdao = new UserDao();
Phone name = new Phone();
public String handleUser(User user) {

    String returncode="failed"; //        User usr = new User("bob");
    String username=user.getUsername();
    String pass=user.getPass();
    System.out.println("username and password : "+username+" : "+pass);


    String ph = name.getA();
    System.out.println("ph "+ph);

    if(ph.equalsIgnoreCase("test")){
        System.out.println("A "+ph);
        returncode="done";
    }
    System.out.println("returning "+returncode);

    return  returncode; //        System.out.println("name "+name.toString()); //        System.out.println(name.getA());


} }
4

1 に答える 1

0

nameそのため、次のオプションのいずれかを実行して、フィールドとフィールドにモックを挿入する必要がありますuserdao

  1. コード内でコンストラクターを直接呼び出さないでください。代わりに、セッターを介してフィールド インジェクションを使用してください。これにより、テストで 2 つのクラスのモック インスタンスを提供できるようになります。

  2. 2 つのフィールドにデフォルトのスコープ セッター メソッドを提供します。これらのメソッドは、テスト目的でのみ配置されます。

  3. Refection を使用して、フィールドをモック インスタンスに設定します。これを行う簡単な方法は、Spring の ReflectionTestUtils を使用することです。

これらのいずれかが配置されたら、テストしたい動作を駆動するために (おそらく Mockito を使用して) モックされたインスタンスを提供できます。可能であればオプション 1 が最適であり、次にオプション 3 が最適であることをお勧めします。ただし、オプション 3 の欠点は、テストがプライベート フィールドの名前に依存することです。

于 2012-09-05T11:13:00.440 に答える