嵌套方法使用easy mock进行测试

时间:2012-09-14 09:41:40

标签: class junit mockito easymock powermock

我在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()。和return()以及suppress(method());

但两者都不起作用

2 个答案:

答案 0 :(得分:1)

如果这是通过MVC完成的,那么您的员工类应该有一个DAO,可以访问数据库。注入totalSalary中调用的DAO的模拟版本。

每条评论:

这是基于您上面的代码:

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);
    } 
}

答案 1 :(得分:0)

您可以使用Mockito。嘲笑方法:

when(employee.totalSal()).thenReturn(1000);