如何对一个函数依赖另一个类的函数做mock

问题:
想对类A的show函数做单元测试,但是A依赖于B类,如何在junit中写这样的单元测试呢?

我想mock到类B的show()函数

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:application-context.xml")
public class ApiTest {
    @Test
    public void show() {
        A a = new A();
        a.show()
        Assert......
    }
}
class A{
    B b
    public String show(){
        return b.show();
    }
}

class B{
    public String show(){
        return "b"
    }
}
阅读 4.7k
1 个回答
新手上路,请多包涵

`

public class Class1 { 
    public String mockTestMethod(String str2){
        String str1="SomeString"; 
        str1 = str2; 
        System.out.println("Inside MockTest Method " + str1); 
        return str1; 
    } 
} 
public class Class2 { 
    public void testingMethod(){ 
        Class1 class1 = new Class1(); 
        String result = class1.mockTestMethod("PassedString");
        System.out.println("Inside Class2 method " + result); 
        }
      }    
@RunWith(PowerMockRunner.class) 
@PrepareForTest({Class2.class, Class1.class}) 
public class ClassTest { 

@Test 
public void runMethod() throws Exception { 
    Class2 class2 = new Class2(); 
    Class1 class1 = PowerMockito.mock(Class1.class); 
    PowerMockito.whenNew(Class1.class).withAnyArguments().thenReturn(class1); 
    PowerMockito.when(class1.mockTestMethod(Mockito.anyString())).thenReturn("MOCKED VALUE"); 
    class2.testingMethod();
 }
}

`

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进