【发布时间】:2021-10-05 02:05:39
【问题描述】:
public class A {
.
.
.
public static String methodA() {
String x = new B().methodX();
return x + "how are ya?";
}
}
public class B {
.
.
public String methodX() {
return "Hello!";
}
}
@Test
public void testGreeting() {
final B b = Mockito.spy(new B());
Mockito.when(b.methodX()).thenReturn("Hi!");
String greetings = A.methodA();
// greetings -> "Hello" but i want it to be "Hi!".
}
我无法让我的方法返回所需的值。 上面的实现显示了我是如何编写测试的,但它不起作用。
我在这里做错了什么?
【问题讨论】:
-
要么在
A的实例中注入b(手动或使用注入框架),要么可以监视整个类而不是实例,如Mockito.spy(B.class);。选项 1 可能更干净。
标签: java testing junit mockito stub