Mockito.spy 执行不同的代码库
Mockito.spy executing different code base
我正在使用以下 mockito。
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-inline</artifactId>
<version>3.5.13</version>
</dependency>
我有class
public class Test(){
private String config;
public getConfig()
{
return config;
}
public String test(){
return getConfig();
}
}
测试class
@RunWith(MockitoJUnitRunner.class)
public class TestClass(){
@Test
public void mockTest()
{
Test test = Mockito.spy(Test.class);
Mockito.when(test.getConfig()).thenReturn("test");
String result = test.test();
assertEquals("test",result);
}
但是模拟不起作用。调试时代码库也不同。一些行被跳过。任何人都可以在这里帮忙。
当您使用 Mockito.spy 时,您应该传递现有(创建的)对象,例如 new Test()
在您的情况下。
示例:
public class Spy {
private String config = "real";
public String getConfig() {
return config;
}
public String test() {
return getConfig();
}
}
并测试:
@Test
public void mockTest() {
Spy test = Mockito.spy(new Spy());
Mockito.when(test.getConfig()).thenReturn("test");
String result = test.test();
assertEquals("test", result);
}
我正在使用以下 mockito。
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-inline</artifactId>
<version>3.5.13</version>
</dependency>
我有class
public class Test(){
private String config;
public getConfig()
{
return config;
}
public String test(){
return getConfig();
}
}
测试class
@RunWith(MockitoJUnitRunner.class)
public class TestClass(){
@Test
public void mockTest()
{
Test test = Mockito.spy(Test.class);
Mockito.when(test.getConfig()).thenReturn("test");
String result = test.test();
assertEquals("test",result);
}
但是模拟不起作用。调试时代码库也不同。一些行被跳过。任何人都可以在这里帮忙。
当您使用 Mockito.spy 时,您应该传递现有(创建的)对象,例如 new Test()
在您的情况下。
示例:
public class Spy {
private String config = "real";
public String getConfig() {
return config;
}
public String test() {
return getConfig();
}
}
并测试:
@Test
public void mockTest() {
Spy test = Mockito.spy(new Spy());
Mockito.when(test.getConfig()).thenReturn("test");
String result = test.test();
assertEquals("test", result);
}