gpt4 book ai didi

java - 模拟 swagger 自动生成的 api 类

转载 作者:行者123 更新时间:2023-11-30 06:38:26 26 4
gpt4 key购买 nike

我有一些由 Swagger 自动生成的 API 客户端,为了简单起见,我们假设我有(这些是自动生成的):

  • ApiClient <-- 这是基本客户端
  • UserApi <-- 在其构造函数中接收 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 类的构造函数中初始化的,所以我的模拟不会被注入(inject)。

我该如何 mock 这个?

最佳答案

我创建了一个简单的library它支持 mocking使用 Mockito 将 Swagger 生成的 stub 作为服务端点(在本地端口上)。

实现风格和代码生成设置将影响事情是否有效,但至少这是一个起点。请随意提交问题和/或 PR 以支持您的用例。

关于java - 模拟 swagger 自动生成的 api 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44834884/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com