断言错误-Junit testcase

断言错误-Junit testcase,junit,mockito,assertion,Junit,Mockito,Assertion,我想使用JUnuit和Mockito测试以下方法 public Map<String, String> getUserACLDetails(final int userId, final int networkId, final List<String> privilegeNames) { final Map<String, String> privilegeNameValue = new HashMap<>(); final O

我想使用JUnuit和Mockito测试以下方法

public Map<String, String> getUserACLDetails(final int userId, final int networkId, final List<String> privilegeNames) 
{
    final Map<String, String> privilegeNameValue = new HashMap<>();
    final Object aclDataString = cbClient.get(String.valueOf(userId));
    Map<String, String> aclData = null;

    if (null != aclDataString && !aclDataString.equals(NULL)) 
    {
        aclData = gson.fromJson(aclDataString.toString(), new HashMap<String, String>().getClass());
    }

    for (String privilegeName : privilegeNames) 
    {
        String innerMapKey = String.valueOf(networkId) + UNDER_SCORE + privilegeName;

        if (aclData.containsKey(innerMapKey)) 
        {
            privilegeNameValue.put(privilegeName, aclData.get(innerMapKey));
        }
    }
    return privilegeNameValue;
}
public Map getUserACLDetails(最终int用户ID、最终int网络ID、最终列表privilegeNames)
{
最终映射privilegenemavalue=newhashmap();
最终对象aclDataString=cbClient.get(String.valueOf(userId));
Map aclData=null;
if(null!=acldastring&!acldastring.equals(null))
{
aclData=gson.fromJson(aclDataString.toString(),new HashMap().getClass());
}
for(字符串privilegeName:privilegeNames)
{
String innerMapKey=String.valueOf(networkId)+UNDER\u SCORE+privilegeName;
if(aclData.containsKey(innerMapKey))
{
privilegenemavalue.put(privilegeneame,aclData.get(innerMapKey));
}
}
返回privilegenemavalue;
}
以下是测试用例-

 public void getUserACLDetailsWithReturnValueTest() 
 {
    final int userId = 123;
    final int networkId = 525;
    List<String> privilegeNames = new ArrayList<>();
    String privilegeName = "PRIVILEGE_ACCESS_VIEW";
    String privilegeValue = "true";
    privilegeNames.add(privilegeName);
    Map<String, String> privilegeNameValues = new HashMap<>();
    privilegeNameValues.put(privilegeName,privilegeValue);
    Map<String, String> aclData = new HashMap<>();
    aclData.put(String.valueOf(networkId) + "_" + privilegeName, privilegeValue);
    privilegeName = "PRIVILEGE_ACCESS_EDIT";
    privilegeValue = "false";
    aclData.put(String.valueOf(networkId) + "_" + privilegeName, privilegeValue);
    Mockito.when(couchbaseClient.get(String.valueOf(userId))).thenReturn(aclData);
    assertEquals(privilegeNameValues, userAclDao.getUserACLDetails(userId, networkId, privilegeNames));
}
 public void getUserACLDetailsWithReturnValueTest() {
    final int userId = 123;
    final int networkId = 525;
    List<String> privilegeNames = new ArrayList<>();
    String privilegeName = "PRIVILEGE_CREATIVE_ACCESS_VIEW";
    String privilegeValue = "true";
    privilegeNames.add(privilegeName);
    final Object aclDataString = "{\"525" + "_" + privilegeName + "\": \"" + privilegeValue + "\"}";
    Map<String, String> privilegeNameValues = new HashMap<>();
    privilegeNameValues.put(privilegeName, privilegeValue);
    Mockito.when(couchbaseClient.get(String.valueOf(userId))).thenReturn(aclDataString);
    assertEquals(privilegeNameValues, userAclDao.getUserACLDetails(userId, networkId, privilegeNames));
}
public void getUserACLDetailsWithReturnValueTest()
{
最终int userId=123;
最终int网络ID=525;
List privilegeNames=new ArrayList();
字符串privilegeName=“PRIVILEGE\u ACCESS\u VIEW”;
字符串privilegeValue=“true”;
添加(privilegeName);
Map privilegenemavalues=newhashmap();
privilegenevalues.put(privilegeneame,privilegeValue);
Map aclData=newhashmap();
aclData.put(String.valueOf(networkId)+“”+privilegeneame,privilegeValue);
privilegeneame=“特权\访问\编辑”;
privilegeValue=“false”;
aclData.put(String.valueOf(networkId)+“”+privilegeneame,privilegeValue);
Mockito.when(couchbaseClient.get(String.valueOf(userId)).thenReturn(aclData);
assertEquals(privilegenemavalues,userAclDao.getUserACLDetails(userId,networkId,privilegenemas));
}
但是当我执行testcase时,我得到以下错误-

java.lang.AssertionError: expected: java.util.HashMap<{PRIVILEGE_CREATIVE_ACCESS_VIEW=true}> but was: java.util.HashMap<{PRIVILEGE_CREATIVE_ACCESS_VIEW=true}>
at org.junit.Assert.fail(Assert.java:93)
at org.junit.Assert.failNotEquals(Assert.java:647)
at org.junit.Assert.assertEquals(Assert.java:128)
at org.junit.Assert.assertEquals(Assert.java:147)
at com.zedo.nirvana.hriday.authorization.UserAclDaoCouchbaseImplTest.getUserACLDetailsWithReturnValueTest(UserAclDaoCouchbaseImplTest.java:153)
java.lang.AssertionError:应为:java.util.HashMap,但为:java.util.HashMap
位于org.junit.Assert.fail(Assert.java:93)
位于org.junit.Assert.failNotEquals(Assert.java:647)
位于org.junit.Assert.assertEquals(Assert.java:128)
位于org.junit.Assert.assertEquals(Assert.java:147)
在com.zedo.nirvana.hriday.authorization.UserAclDaoCouchbaseImplTest.getUserACLDetailsWithReturnValueTest(UserAclDaoCouchbaseImplTest.java:153)上

我无法理解这里出了什么问题。任何人都可以帮忙。

以下是正确的测试用例-

 public void getUserACLDetailsWithReturnValueTest() 
 {
    final int userId = 123;
    final int networkId = 525;
    List<String> privilegeNames = new ArrayList<>();
    String privilegeName = "PRIVILEGE_ACCESS_VIEW";
    String privilegeValue = "true";
    privilegeNames.add(privilegeName);
    Map<String, String> privilegeNameValues = new HashMap<>();
    privilegeNameValues.put(privilegeName,privilegeValue);
    Map<String, String> aclData = new HashMap<>();
    aclData.put(String.valueOf(networkId) + "_" + privilegeName, privilegeValue);
    privilegeName = "PRIVILEGE_ACCESS_EDIT";
    privilegeValue = "false";
    aclData.put(String.valueOf(networkId) + "_" + privilegeName, privilegeValue);
    Mockito.when(couchbaseClient.get(String.valueOf(userId))).thenReturn(aclData);
    assertEquals(privilegeNameValues, userAclDao.getUserACLDetails(userId, networkId, privilegeNames));
}
 public void getUserACLDetailsWithReturnValueTest() {
    final int userId = 123;
    final int networkId = 525;
    List<String> privilegeNames = new ArrayList<>();
    String privilegeName = "PRIVILEGE_CREATIVE_ACCESS_VIEW";
    String privilegeValue = "true";
    privilegeNames.add(privilegeName);
    final Object aclDataString = "{\"525" + "_" + privilegeName + "\": \"" + privilegeValue + "\"}";
    Map<String, String> privilegeNameValues = new HashMap<>();
    privilegeNameValues.put(privilegeName, privilegeValue);
    Mockito.when(couchbaseClient.get(String.valueOf(userId))).thenReturn(aclDataString);
    assertEquals(privilegeNameValues, userAclDao.getUserACLDetails(userId, networkId, privilegeNames));
}
public void getUserACLDetailsWithReturnValueTest(){
最终int userId=123;
最终int网络ID=525;
List privilegeNames=new ArrayList();
字符串privilegeName=“特权\创造性\访问\视图”;
字符串privilegeValue=“true”;
添加(privilegeName);
最终对象acldastring=“{\”525“+”\“+privilegeneame+“\”:\”“+privilegeValue+“\”}”;
Map privilegenemavalues=newhashmap();
privilegenevalues.put(privilegeneame,privilegeValue);
Mockito.when(couchbaseClient.get(String.valueOf(userId)).thenReturn(aclDataString);
assertEquals(privilegenemavalues,userAclDao.getUserACLDetails(userId,networkId,privilegenemas));
}
调用mocked objects方法时,我在返回值时出错