[英]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.