相关疑难解决方法(0)

同一类中的模拟方法

我正在使用Mockito来模拟我正在编写测试的同一个类中的方法.我已经在SO上看到了其他答案(同一类中的模拟方法),但可能是我误解了它们,因为我遇到了问题.

 class Temp() {

    public boolean methodA(String param) {

         try {

             if(methodB(param))
                   return true;

             return false;
         } catch (Exception e) {
               e.printStackTrace();
         }
    }
 }
Run Code Online (Sandbox Code Playgroud)

我的测试方法:

 @Test
 public void testMethodA() {

    Temp temp = new Temp();
    Temp spyTemp = Mockito.spy(temp);

    Mockito.doReturn(true).when(spyTemp).methodB(Mockito.any()); 
    boolean status = temp.methodA("XYZ");

    Assert.assertEquals(true, status);
 }
Run Code Online (Sandbox Code Playgroud)

然而,由于方法B的定义被执行,我打印出了预期.我的理解是使用spyTemp来模拟methodB的定义.然而,情况似乎并非如此.

有人可以解释我哪里出错吗?

java unit-testing mocking mockito

16
推荐指数
3
解决办法
3万
查看次数

标签 统计

java ×1

mocking ×1

mockito ×1

unit-testing ×1