每个方法返回一个模型

时间:2015-12-22 15:35:15

标签: java junit

我是JUnit的新手,我需要为这样的许多方法编写JUnit测试用例。任何线索都非常感谢。谢谢

public String screen() {

    ServiceRequest request = new ServiceRequest(
            Key1.Key2.Home.screenDisplay,
            Key1.Key2.serviceClass);
    ServiceResponse response = getService(request);
    someModel = new someModel();
    someModel = (someModel) response
            .getOutput(Key1.Key2.Home.Out);
    if (someModel != null) {

        someModel.setList(someModel.getList());

        setsomeModel(someModel);
    }
    return SUCCESS;

}

1 个答案:

答案 0 :(得分:1)

   someModel = new someModel();

这一行最后没有做任何事情,因为无论如何你都会在下一行覆盖someModel

在你的情况下,你可以,例如,你可以使用Mockito监视你的对象,从而允许getService()方法返回你控制的东西 - 假设它不是私有的。如果是,那么你会遇到问题。

只是为了告诉你,它是如何完成的:

class ToTest {

    public void methodA() {
        System.out.println( methodB() );
    }

    String methodB() {
        return "foo";
    }
}

public class TestCase {

    @Test
    public void bla() {
        final ToTest x = Mockito.spy( new ToTest() );
        Mockito.when( x.methodB() ).thenReturn( "bar" );

        x.methodA(); // prints out "bar"

        Mockito.verify( x ).methodB();
    }    
}

如果从getService()方法返回一个模拟,那么你可以验证setList被调用了(好吧,在你的情况下你通过设置相同的列表以某种方式使某些东西变得奇怪)并且你可以验证你的间谍对象,调用了setsomeModel。