[英]How to assert ArrayList of String ArrayList equal in TestNG
我有一种方法,将给定的String ArrayList分组为String ArrayList的ArrayList,每个String ArrayList包含相同长度的字符串。 方法是:
公共静态ArrayList> getGrouping(ArrayList strlist)
{
Map<Integer, ArrayList<String>> mapOfList = new HashMap<Integer, ArrayList<String>>();
/*
* Define ArrayList of ArrayList to build the output to return, and,
*another ArrayList to act as sub-array to build the output
*/
ArrayList<ArrayList<String>> outer = new ArrayList<ArrayList<String>>();
ArrayList<String> inner = new ArrayList<String>();
String temp;
/*
* populate the map of lists in the format map <length of string , list of strings of this length
*/
for(int i = 0; i <strlist.size(); i++)
{
temp = strlist.get(i);
if (temp == null)
continue;
int len = temp.length();
len = new Integer(len);
if(mapOfList.get(len) == null)
{
mapOfList.put(len, new ArrayList<String>());
}
mapOfList.get(len).add(temp);
}
/*
* Build sub ArrayList using ArrayList at every entry and add this to the outer ArrayList to be returned
*/
for(Map.Entry<Integer, ArrayList<String>> entry : mapOfList.entrySet())
{
inner = entry.getValue();
outer.add(inner);
}
return outer;
}
我是TestNG的新手,正在尝试为上述代码编写测试方法。 我在构建预期结果时遇到麻烦(这是String ArrayList的ArrayList)。 最好的方法是什么? 我现在做的方式会引发错误:
java.lang.ClassCastException:java.util.Arrays $ ArrayList无法转换为java.util.ArrayList
同样,我构建输入的方式可能不是最佳方式。 可以做得更好吗? 我现在失败的TestNG @Test方法是:
public void testWithNullValues()
{
ArrayList<ArrayList<String>> oup = new ArrayList<ArrayList<String>>();
ArrayList<String> inp = new ArrayList<String>();
inp.add("abc");
inp.add("ba");
inp.add("bdc");
inp.add(null);
inp.add("bfed");
inp.add(null);
inp.add("bdsf");
inp.add("a");
inp.add("b");
inp.add("bdcjkhwd");
oup = GroupListOfString.getGrouping(inp);
ArrayList<ArrayList<String>> expectedResult = new ArrayList<ArrayList<String>>();
expectedResult.add((ArrayList<String>) Arrays.asList("a", "b"));
expectedResult.add((ArrayList<String>) Arrays.asList("ba"));
expectedResult.add((ArrayList<String>) Arrays.asList("abc", "bdc"));
expectedResult.add((ArrayList<String>) Arrays.asList("bfed","bdsf"));
expectedResult.add((ArrayList<String>) Arrays.asList("bdcjkhwd"));
Assert.assertEquals(expectedResult, oup);
inp.clear();
}
提前致谢!
Arrays.asList
返回一个java.util.Arrays.ArrayList
,它与您的课程其余部分使用的java.util.ArrayList
不同。 但是,您可以构建一个:
ArrayList<ArrayList<String>> expectedResult = new ArrayList<>();
expectedResult.add(new ArrayList<>(Arrays.asList("a", "b")));
expectedResult.add(new ArrayList<>(Arrays.asList("ba")));
expectedResult.add(new ArrayList<>(Arrays.asList("abc", "bdc")));
expectedResult.add(new ArrayList<>(Arrays.asList("bfed","bdsf")));
expectedResult.add(new ArrayList<>(Arrays.asList("bdcjkhwd")));
Assert.assertEquals(expectedResult, oup);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.