创建java.util.map.Entry实例以帮助单元测试

创建java.util.map.Entry实例以帮助单元测试,java,junit,mockito,powermockito,Java,Junit,Mockito,Powermockito,在我的代码中,我有一个for循环 for( final Entry<Object, Object> entry : fileTypeProperties.entrySet()) { saveFileTypeToCompany(registeredCompany, entry.getKey().toString(), entry.getValue().toString()); } for(最终条目:fileTypeProp

在我的代码中,我有一个
for
循环

for( final Entry<Object, Object> entry : fileTypeProperties.entrySet()) {
    saveFileTypeToCompany(registeredCompany,
             entry.getKey().toString(), 
             entry.getValue().toString());
}
for(最终条目:fileTypeProperties.entrySet()){
将文件类型保存到公司(注册公司,
entry.getKey().toString(),
entry.getValue().toString());
}

因此,在单元测试时,如何创建
Entry
(即
java.util.map.Entry
)的实例?

您实际需要做的是加载
fileTypeProperties
的一些属性,如下所示,以便在调用
fileTypeProperties.entrySet()
时,它将返回
条目
对象

Map<Object, Object> fileTypeProperties = new HashMap<>();
// add some dummy property values to fileTypeProperties
Map fileTypeProperties=newhashmap();
//向fileTypeProperties添加一些虚拟属性值
  • 不能直接创建
    映射项,因为它是一个接口。如果愿意,您可以创建自己的类来实现接口

  • 我不明白为什么要创建一个条目来进行单元测试。如果您正在测试
    saveFileTypeToCompany
    ,那么您将传递条目的键和值,而不是条目本身。因此,要进行单元测试,需要将测试值传递给函数。如果要测试显示的代码,则需要填充映射以正确测试它。我看不到任何需要直接创建条目的场景

  • 如果您确实需要使用
    Map.Entry
    进行单元测试,则使用mocking。您可以模拟接口,然后定义
    getKey
    getValue
    返回的内容

  • 如果您使用的是Java8,那么您的代码可以简化为:
    filetypeproperties.forEach((k,v)->saveFileTypeToCompany(company,k,v))


您通常将其视为
Map.Entry
,而不仅仅是
Entry
,而是惯例
import java.util.Map
,然后将其更改为
Map.Entry