[英]Unit test, how to test? wanted but not invoked on Mockito.verify
我有带有构造函数和方法的GatewayServer.class :
public class GatewayServer {
private ResourceConfig resourceConfig = null;
public GatewayServer(...) {
...
resourceConfig = new ResourceConfig();
...
}
public void registerController(Class<?> controller) {
resourceConfig.register(controller);
}
我有GatewayServerTest.class ,我想测试在 resourceConfig 上是否调用了register()
方法,但我不知道如何添加new ResourceConfig()
模拟:
@RunWith(MockitoJUnitRunner.class)
public class GatewayServerTest {
@InjectMocks
GatewayServer gatewayServer;
@Mock
ResourceConfig resourceConfig;
@Before
public void setup() {
gatewayServer = new GatewayServer(...);
}
@Test
public void registerControllerTest() {
gatewayServer.registerController(Endpoint.class);
Mockito.verify(resourceConfig, Mockito.atLeastOnce()).register(Mockito.any());
}
}
用 Mockito 是不可能做到的,但你可以使用 PowerMock,它可以模拟构造函数本身。
另一种解决方案是不在构造函数中而是在适当位置初始化Resource config
(如果您没有任何后初始化):
private ResourceConfig resourceConfig = new ResourceConfig();
在这种情况下,可以使用 Mockito 进行模拟(就像您在测试类中所做的那样)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.