我正在尝试在JavaEE7应用程序中为服务编写一个JUnit测试。 正在测试的服务类注入另一个服务类,该服务类又注入另一个类。 这是我的课程:
class ServiceA {
ServiceB serviceB;
public void methodA() {
serviceB.methodB();
}
}
class ServiceB {
@Inject
ServiceC serviceC;
public void methodB() {
serviceC.methodC();
}
}
class ServiceC {
public void methodC() {}
}
class TestServiceA {
@Spy
ServiceA serviceA;
@InjectMocks
ServiceB serviceB;
@Before
public void setUp() {
serviceA.serviceB = mock(ServiceB.class);
}
@Test
public void testServiceA() {
serviceA.methodA();
}
}
编辑:从原始记录器问题编辑到一般对象问题。 问题是,是否有可能或有必要在我的测试中注入多个级别的对象,或者我是否应该模拟第一个注入的服务并使用when-Expressions捕获对后续服务的所有方法调用?