0

Javaでのクラスモックに関する問題に直面しています。

ダミークラスを使用して問題を説明します(プロジェクト関連のセキュリティ上の懸念を回避するため)クラス従業員がいます

public class Employee {
public int netSalary() {
    int sal = totalSal() - 100;
    return sal;
}

public int totalSal() {
    // code to return value which is making db calls or remote calls
}

}

今私の問題は、totalSalメソッドを呼び出さずにnetSalaryメソッドをテストする方法がexpect()。andReturn()とsuppress(method())を試したことです。

しかし、両方とも機能していません

4

2 に答える 2

1

これがMVCを介して行われた場合、従業員クラスにはDBへのアクセスを提供するDAOが必要です。で呼び出されるDAOのモックバージョンを注入しtotalSalaryます。

コメントごと:

これは、上記のコードに基づいています。

public class MyTest{

    private class TestableEmployee extends Employee{

        public int totalSal(){
           return 55;
        }
    }

    @Test
    public void testIt(){
       Employee employee = new TestableEmployee();

       int netValue = employee.netSalary();

       assertEquals(netValue, 55-100);
    } 
}
于 2012-09-14T11:29:27.763 に答える
0

Mockitoを使用できます。メソッドをモックします。

when(employee.totalSal()).thenReturn(1000);
于 2012-09-14T09:56:46.067 に答える