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

时间:2017-04-05 05:38:46

标签: java junit mockito powermockito

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

for( final Entry<Object, Object> entry : fileTypeProperties.entrySet()) {
    saveFileTypeToCompany(registeredCompany,
             entry.getKey().toString(), 
             entry.getValue().toString());
}

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

2 个答案:

答案 0 :(得分:1)

  • 您无法直接创建Map.Entry界面。如果需要,您可以创建自己的实现接口的类。

  • 我无法理解您为什么要为单元测试创​​建条目。如果您正在测试saveFileTypeToCompany,那么您将传递条目的键和值,而不是条目本身。因此,对于单元测试,您将测试值传递给函数。如果您正在测试您正在显示的代码,那么您需要填充地图以正确测试它。我无法看到您需要直接创建条目的任何情况。

  • 如果您确实需要使用Map.Entry进行单元测试,请使用模拟。您可以模拟界面,然后定义getKeygetValue返回的内容。

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

答案 1 :(得分:0)

您实际需要做的是加载fileTypeProperties一些属性,如下所示,这样当您致电fileTypeProperties.entrySet()时,它将返回Entry个对象。

Map<Object, Object> fileTypeProperties = new HashMap<>();
// add some dummy property values to fileTypeProperties