@Test
public void verifyAttribute_getEnforceUserGroup_True()
{
boolean flag= false;
new MockUp<DataCache>()
{
@Mock
public HashMap getSitesCache()
{
return map;
}
};
new Expectations()
{
{
cach.getSitesCache().get(anyInt);
returns(site);
site.getEnforceUserGroups();
returns(1);
}
};
try
{
flag =enforceObj.verifyAttribute();
assertEquals(true, flag);
}
catch (Exception e)
{
e.printStackTrace();
}
}
我无法模仿get(int key)
类的HashMap
方法。 Cach和site是各自类的模拟对象。
如果我对cach.getSitesCache.get(anyInt)
发表评论并添加map.get(key)
,则会出现同样的错误。我的问题是:
如何模拟get(int)
类的HashMap
方法?
此处getSitesCache()
方法返回HashMap
。现在通过传递密钥作为get方法的参数,我得到了一个对象。现在该对象被转换为Site对象。
如何嘲笑它?
答案 0 :(得分:0)
不允许模拟HashMap
;相反,测试应该从getSitesCache()
返回一个真实的地图。