如何模拟测试类的方法?
例如:
class Test {
publick String mainMethod() {
String test = methdotWhichNeedMock("Hello", "World");
return test;
}
public String methodtWhichNeedMock(String s1, String s2) {
return s1 + s2;
}
}
我试着用
when(test.methdotWhichNeedMock(s1 , s2)).thenReturn("result");
和许多结构,如doThen...,但每次尝试我的程序做methdotWhichNeedMock方法的逻辑。
我的TestClass:
@ExtendWith(MockitoExtension.class)
class TestClass {
@InjectMocks
Test service;
@Test
void mainMethod() {
when(service.methodtWhichNeedMock("s1", "s2")).thenReturn("new String");
assertEquals("new String", service.mainMethod());
}
}
我应该怎么做才能使methodtWhichNeedMock方法的逻辑不执行,而只是在我尝试调用它时返回我在thenReturn中编写的内容?
1条答案
按热度按时间w7t8yxp51#
使用
@Spy
如果你想部分地模拟一个类:因此,对于所有未被模拟的方法,将执行真实的的代码,其余的将执行模拟