我得到以下异常
org.mockito.exceptions.misusing.InvalidUseOfMatchersException:
Misplaced argument matcher detected here:
You cannot use argument matchers outside of verification or stubbing.
Examples of correct usage of argument matchers:
when(mock.get(anyInt())).thenReturn(null);
doThrow(new RuntimeException()).when(mock).someVoidMethod(anyObject());
verify(mock).someMethod(contains("foo"))
@Mock
Template templateParser = new TemplateParser();
when(templateParser.getLayoutIdsFromTemplate(any(HashMap.class)))
.thenReturn(Arrays.asList("id1", "id2"));
public class TemplateParser {
public List<String> getLayoutIdsFromTemplate(HashMap<String, Object> parsedTemplate)
{
List<String> listOfLayoutIds = new ArrayList<String>();
//Loading listOfLayoutIds here
return listOfLayoutIds;
}
}
您的模拟方法GetLayoutidsFromTemplate
接收的是类型化的HashMap
参数,而不是简单的HashMap
。这是invaliduseofmatchersexception
的原因。
如果您可以做一点重构,您可以通过以下操作来解决问题:
1)将方法更改为接收map
而不是hashmap
:
public List<String> getLayoutIdsFromTemplate(Map<String, Object> parsedTemplate) {
...
}
2)在测试类中,使用mockito.anymapof(String.class,Object.class))
而不是mockito.any(HashMap.class))
匹配参数:
when(templateParser.getLayoutIdsFromTemplate(anyMapOf(String.class, Object.class))).thenReturn(Arrays.asList("id1", "id1"));
希望有帮助。
这是我运行程序时收到的错误: 注:[19533]是我使用的一个测试值。 这是在CustomerServiceBeanImpl.java中出现错误的方法: 在快速检查ERD时,“Customer”表中的“id”列的数据类型为bigint。然而,我不确定这是否重要。(顺便提一下PostgreSQL数据库。) 如何修复此错误?
我正在研究Laravel 4和Postgreql。我试图存储一个数组在Postgreql数组字段。这是我的表声明: 我试着用雄辩插入一行: 我得到这个错误: 此错误来自供应商/laravel/框架/src/照明/支持/helpers.php:990。 我读过这个问题,为什么在Laravel中提交帖子表单时会出现preg_replace()错误?尝试保存数组时会发生此错误。 但我确实想在我的Post
我试图使用Mockito来模拟一个方法,但是,我不断地出错。我试图用spring注释设置Mockito @RunTo(MockitoJUnitRunner.class)类CPEServiceInvokerInimplNewTest{ 然后我用这个Mockito调用- 尝试并模仿这种方法- 我得到了这个错误- 如果匹配器与原始值组合,则可能会发生此异常://不正确:somethod(anyObjec
在setUp()方法下一行中: 以下是错误: org.mockito.exceptions.misusing.invaliduseofmatchersexception:在此处检测到错误放置或错误使用的参数匹配器: ->在com.auditService.test.auditServiceClientTest.setup(auditServiceClientTest.java:72) when(m
问题内容: 我需要为某些数据集创建一个匹配查找器系统,如下所示: 有一组对象,每个对象都由一个字符串标识。 每个对象正好具有N个属性P i。每个属性值都是一个字符串。 N = 3的数据库示例(在现实生活中,N = 8)。 系统必须返回s 集,匹配对象属性上的给定查询。在查询中,用户必须指定所有属性值。或者,对于查询中的某些或所有属性,用户可以指定“通配符” ,这意味着任何属性值都将与条件匹配。 查
在BundleProcessorTest.java中的以下两个测试用例中,我的第一个测试用例成功地通过了异常。 org.mockito.exceptions.misusing.invaliduseofmatchersexception:在此处检测到错误的参数匹配器: ->在bundle.test.bundleProcessorTest.bundlePluginShouldNotBenull(Bun