【发布时间】:2013-08-11 02:56:11
【问题描述】:
我正在尝试为 droplet 创建一个 Mock 类。我能够模拟存储库调用和req.getParameter,但需要有关如何从存储库模拟存储库项目列表的帮助。下面是示例代码。
for (final RepositoryItem item : skuList) {
final String skuId = (String) item.getPropertyValue("id");
final String skuType = (String) item.getPropertyValue("skuType");
if (this.isLoggingDebug()) {
this.logDebug("skuType [ " + skuType + " ]");
}
final String skuActive = (String) item.getPropertyValue("isActive");
if EJSD.equalsIgnoreCase(skuType) && (skuActive.equals("1"))) {
eSkuList.add(item);
skuCode = (String) item.getPropertyValue(ESTConstants.SKU_MISC1);
} else (PJPROMIS.equalsIgnoreCase(skuType) && skuId.contains("PP") && (skuActive.equals("1"))) {
personalSkuList.add(item);
String tmp = "";
if (skuId.lastIndexOf("-") > -1) {
tmp = skuId.substring(skuId.lastIndexOf("-") + 1);
tmp = tmp.toUpperCase();
if (this.getDefaultDisplayNameMap() != null) {
String val = this.getDefaultDisplayNameMap().get(tmp);
if (StringUtils.isNotEmpty(val)) {
displayNameMap.put(skuId, val);
} else {
val = (String) item.getPropertyValue("displayName");
displayNameMap.put(skuId, val);
}
} else {
final String val = (String) item.getPropertyValue("displayName");
displayNameMap.put(skuId, val);
}
}
}
}
【问题讨论】:
-
“skuList”从何而来?开始此操作的一种简单方法是创建一对
RepositoryItem,然后将它们添加到列表中,然后针对列表中的每个RepositoryItem模拟getPropertyValue(String)的各个响应。 SSCCE 也没有显示你想从输出中测试什么。这是您的液滴中的service方法还是实用方法? -
感谢 radimpe 。这个方法在我的droplet中,skulist是repositoryItems的列表
-
您需要创建模拟对象,然后存根每个调用。例如when(repositoryItemMock.getRepositoryId("id")).thenReturn(yourSkuId);
标签: java mocking atg atg-droplet