我的代码:
class A extends X {
@Autowired
B b;
@Override
method() {
//do something
b.callMethodInB;
//do something
}
}
class B extends X {
@Autowired
C c;
@Override
method() {
//do something
c.callMethodInC;
//do something
}
}
我需要在 A
中测试 method()
。那么如何模拟B
。我正在使用 Junit4 和 Jmockit。
最佳答案
尝试这样的事情:
import org.junit.*;
import mockit.*;
public class ATest
{
@Tested A a;
@Injectable B b;
@Test
public void testMethod()
{
a.method();
new Verifications() {{ b.callMethodInB(); }};
}
}
JMockit 使用注入(inject)的 B
实例(来自模拟字段 b
)自动实例化 A
,将其设置为 a
测试类中的字段。这与使用的 DI 框架 (Spring) 无关。
关于java - 如何使用 JMockit 模拟 Spring 注入(inject)类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11242923/