繁体   English   中英

Mockito 测试带有 2 个参数的函数

[英]Mockito testing for function with 2 args

我有以下流:

Collection<FieldsMapperMetadata> fieldsMapperMetadataCollection =
            Optional.ofNullable(typesMapperDefinition.getFieldMappersDefinitions()).orElse(Collections.emptyList())
                    .stream()
                    .map(fieldsMapperDefinition -> fieldsMapperMetadataFactory.apply(typesMapperDefinition, fieldsMapperDefinition))
                    .collect(Collectors.toList());

我正在尝试使用 mockito 来测试它,但是我在这部分遇到了问题

fieldsMapperDefinition -> fieldsMapperMetadataFactory.apply(typesMapperDefinition, fieldsMapperDefinition)

这是函数签名

private BiFunction<TypesMapperDefinition, FieldsMapperDefinition, FieldsMapperMetadata> fieldsMapperMetadataFactory;

我试图做这样的事情:

 Mockito.when(fieldsMapperMetadataFactory.apply(Mockito.eq(typesMapperDefinition1,fieldsMapperDefinition1)).thenReturn(fieldsMapperMetadata1);

但似乎 Mockito.eq 不是正确的方法......对此的任何帮助都会得到帮助

你只传递一个参数给 apply 方法,你应该调用eq()两次:

Mockito.when(fieldsMapperMetadataFactory
         .apply(Mockito.eq(typesMapperDefinition1), Mockito.eq(fieldsMapperDefinition1))
       .thenReturn(fieldsMapperMetadata1);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM