首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >junits中的模拟CosmosClient

junits中的模拟CosmosClient
EN

Stack Overflow用户
提问于 2022-08-29 12:56:31
回答 1查看 157关注 0票数 0

我们需要从Azure-CosmosDB - sql api中获取很少的记录以提高覆盖率,我们想要模拟,但是搜索了很多,但没有找到Java。你能在这里做向导吗?

我的DAO类如下所示

代码语言:javascript
复制
private CosmosClient client;

@Autowired
public DAO(CosmosClient client) {
    this.client = client;
}

CosmosDatabase database;
CosmosContainer container;

    private static final String DATABASE = "test-db";
    private static final String CONTAINER = "test-container";

   /**
     * Test method
     */
    public List<TestVO> fetchTestData() {

       // create database
        CosmosDatabaseResponse databaseResponse = client.createDatabaseIfNotExists(DATABASE);
        database = client.getDatabase(databaseResponse.getProperties().getId());

      // create container
        CosmosContainerProperties containerProperties = new CosmosContainerProperties(CONTAINER, "/pkey");
        CosmosContainerResponse containerResponse = database.createContainerIfNotExists(containerProperties,
                throughputProperties);
        container = database.getContainer(containerResponse.getProperties().getId());

           // Form querySpec
            Iterable<FeedResponse<Test>> feedRespIter = container
                    .queryItems(querySpec, queryOptions, Test.class).iterableByPage(continuationToken, pageSize);

            // iterate list of documents to return shipping list
            if (feedRespIter .iterator().hasNext()) {
                // Some business logic
            }
    }

在向cosmosClient注入mock或仅仅是模仿时,我会出错

代码语言:javascript
复制
Cannot mock/spy class com.azure.cosmos.CosmosClient
Mockito cannot mock/spy because
 - final class
    at org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener.initMocks(MockitoTestExecutionListener.java:83)
    at org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener.prepareTestInstance(MockitoTestExecutionListener.java:60)
EN

回答 1

Stack Overflow用户

发布于 2022-11-21 06:56:30

CosmosClient是最后一个类,要模拟最终类,需要使用以下步骤配置Mockito特性:

在以下路径中创建一个文件:

代码语言:javascript
复制
src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker

有以下内容:

代码语言:javascript
复制
mock-maker-inline

这应该允许模拟最后的类。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73529141

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档