我有一些由Swagger自动生成的API客户端,为了简单起见,假设我有(这些都是自动生成的):
ApiClient
现在我创建了一个ApiUtils
:
public class ApiUtils {
private UserApi userApi;
public ApiUtils(final ApiClient apiClient) {
userApi = new UserApi(apiClient);
}
// Methods here
}
我想模仿这个类,我希望我可以InjectMethod
使用UserApi
。我尝试了以下方法:
public class ApiUtilsTest {
@Mock
private ApiClient apiClient;
@Mock
private UserApi userApi;
@InjectMock
private ApiUtils apiUtils;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
apiUtils = new ApiUtils(apiClient);
}
@Test
public void testSomething() {
when(userApi.doSomething).thenReturn(myMock);
apiUtils.someMethodThatUsesApiUser ...
}
}
但是因为UserApi
在Utils类的构造函数中初始化,所以我没有注入我的模拟。
我怎么嘲笑这个?