Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Mock-swagger自动生成的api类_Java_Unit Testing_Mockito_Swagger - Fatal编程技术网

Java Mock-swagger自动生成的api类

Java Mock-swagger自动生成的api类,java,unit-testing,mockito,swagger,Java,Unit Testing,Mockito,Swagger,我有一些由Swagger自动生成的API客户端,为了简单起见,假设我有(这些是自动生成的): ApiClient我创建了一个简单的应用程序,它支持使用Mockito将Swagger生成的存根作为服务端点(在本地端口上) 实现风格和代码生成设置将影响工作是否正常,但至少这是一个起点。请随时提交问题和/或PRs以支持您的用例。您是否可以为ApiUtils类添加替代构造函数或userApi的setter?@DawoodibnKareem如果这样做,我将仅为测试目的添加它。我不希望添加一个我不会在实际

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

  • ApiClient我创建了一个简单的应用程序,它支持使用Mockito将Swagger生成的存根作为服务端点(在本地端口上)


    实现风格和代码生成设置将影响工作是否正常,但至少这是一个起点。请随时提交问题和/或PRs以支持您的用例。

    您是否可以为ApiUtils类添加替代构造函数或userApi的setter?@DawoodibnKareem如果这样做,我将仅为测试目的添加它。我不希望添加一个我不会在实际生产中使用的方法。如果代码更易于测试,那么它就更易于维护,这是一个双赢的结果。您不应该羞于添加提高代码可测试性的人工制品。
    public class ApiUtils {
        private UserApi userApi;
    
        public ApiUtils(final ApiClient apiClient) {
            userApi = new UserApi(apiClient);
        }
    
        // Methods here
    }
    
    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 ...
        }
    }