当前位置: 首页 > 知识库问答 >
问题:

Mockito when()不区分子类

茅和玉
2023-03-14
private InputStream       postContent;
private InputStream       getContent;
@Mock
private FilesHandler hand;
@Mock
private MockHttpClient    client;
private MockHttpEntity    postEntity;
private MockHttpEntity    getEntity;
private MockHttpResponse  postResponse;
private MockHttpResponse  getResponse;
private String imgQuery = "someQuery";
private ParametersHandler ph;
private FileHandlerImpl   fileHand;
private String            indexFolder = "src/test/resources/misc/";
private String            indexFile   = "index.csv";

@Before
public void setUp() {
    MockitoAnnotations.initMocks(this);
    try {
        postContent = new FileInputStream(indexFolder + "testContent.txt");
        postEntity = new MockHttpEntity(postContent);
        postResponse = new MockHttpResponse(postEntity, new BasicStatusLine(new ProtocolVersion("http", 1, 1), 200, "postReasonPhrase"));
        getContent = new FileInputStream(indexFolder + "testContent.txt");
        getEntity = new MockHttpEntity(getContent);
        getResponse = new MockHttpResponse(getEntity, new BasicStatusLine(new ProtocolVersion("http", 1, 1), 200, "getReasonPhrase"));
        ph = new ParametersHandler();
        fileHand = new FileHandlerImpl(client, ph, indexFolder, indexFile);
    } catch (Exception e) {
        failTest(e);
    }
}
@Test
public void getFileWhenEverythingJustWorks() {

    try {
        Mockito.when(client.execute(Mockito.any(HttpPost.class))).thenReturn(postResponse);
        Mockito.when(client.execute(Mockito.any(HttpGet.class))).thenReturn(getResponse);
        fileHand.getFile(hand, imgQuery, ph, "I");
        Mockito.verify(hand).rebuildIndex(Mockito.any(String.class), Mockito.any(Map.class), Mockito.any(Map.class), hand);
    } catch (IOException e) {
        failTest(e);
    }
}

下面是正在测试的方法的缩短版本。

public void getFile(FilesHandler fileHandlerFl, String query, ParametersHandler ph, String type) {

        JsonFactory factory = new JsonFactory();
        HttpPost post = preparePost(query, factory);
        CloseableHttpResponse response = client.execute(post);

    String uri = "https://someuri.com" + "/File";
        HttpGet get = new HttpGet(uri);
        setParameters(get);
        response.close();
        response = client.execute(get);
}

一如既往,我们感谢您能提供的任何帮助。

共有1个答案

雷硕
2023-03-14

不管它在英语中是什么意思,在Mockito1.x中,任何(httpget.class)都匹配任何值,而不仅仅是任何HTTPGET。该参数仅用于保存Java8之前的强制转换。

来自Matchers。任何(类)文档:

匹配任何对象,包括空值

 类似资料:
  • 我有一个akka流,我有一个ADT的形式。 现在我有一个这个消息处理程序流和一个那个消息处理程序流。我有一个接受消息类型的入口流。 为了创建拆分,我有以下分区器。我有以下分区器函数的定义。 我希望使用上述方法,并使用类型params中的ADT来初始化分区程序。 编译器抛出这个错误。 据我所知,分区对象只有Inlet(在本例中为A,参数化类型。 有人知道我该怎么解决这个问题吗?

  • 我们在AWS上运行16个节点kafka集群,每个节点是m4. xLargeEC2实例,具有2TB EBS(ST1)磁盘。Kafka版本0.10.1.0,目前我们有大约100个主题。一些繁忙的话题每天会有大约20亿个事件,一些低量的话题每天只有数千个。 我们的大多数主题在生成消息时使用UUID作为分区键,因此分区分布相当均匀。 我们有相当多的消费者使用消费群体从这个集群消费。每个使用者都有一个唯一的

  • 问题内容: 我有一个MS Access数据库,我将需要创建一个SQL查询,该查询使我可以在保留所有值的同时,在一列中选择所有不同的条目。 在这种情况下,一个例子比以往任何时候都更有价值数千个单词: 表: SQL魔术 结果: 基本上,它删除列B的所有唯一值,但保留数据的多行。我可以“按b分组”,然后“计数> 1”以得到不同的字符,但是结果将只列出B的一行,而不是我需要的2或更多行。 有什么帮助吗?

  • 这是将Spark dataframe保存为Hive中的动态分区表的后续操作。我试图在答案中使用建议,但无法在Spark 1.6.1中使用 任何推动这一进程的帮助都是感激的。 编辑:还创建了SPARK-14927

  • 我正在制作一个web组件,一个导航栏(或navbar)。里面有四个部分,标志,菜单,切换器,和额外。 问题是,我应该对每个部分使用 还是 ? 还是有更合适的元素类型? 插图是这样的: 匿名用户 这是一个很棒的问题,并且与语义HTML相关。根据MDN,当没有其他标记真正相关或合适时,我们应该使用section标记。如果意图是一个实际的节,那么它还应该包括一个节头。 HTML 元素表示文档的一个通用的