4
模拟回调和获取参数值
我没有运气让Mockito捕获函数参数值!我在模拟搜索引擎索引,而不是建立索引,而是使用哈希。 // Fake index for solr Hashmap<Integer,Document> fakeIndex; // Add a document 666 to the fakeIndex SolrIndexReader reader = Mockito.mock(SolrIndexReader.class); // Give the reader access to the fake index Mockito.when(reader.document(666)).thenReturn(document(fakeIndex(666)) 我不能使用任意参数,因为我正在测试查询的结果(即查询返回的文档)。同样,我不想为每个文档指定特定值,也不想为每个文档都指定一行! Mockito.when(reader.document(0)).thenReturn(document(fakeIndex(0)) Mockito.when(reader.document(1)).thenReturn(document(fakeIndex(1)) .... Mockito.when(reader.document(n)).thenReturn(document(fakeIndex(n)) 我查看了“使用Mockito”页面上的回调部分。不幸的是,它不是Java,我无法对此做出自己的解释才能在Java中工作。 编辑(为澄清起见):如何获取Mockito捕获参数X并将其传递给我的函数?我想要传递给函数的X的确切值(或ref)。 我不想列举所有情况,并且任意参数将不起作用,因为我正在测试不同查询的不同结果。 Mockito页面上说 val mockedList = mock[List[String]] mockedList.get(anyInt) answers { i => "The parameter …