Java 对数组转换集进行单元测试
我有一个数组。我需要将其转换为集合,然后进行单元测试。我成功地完成了设置对话的数组。但是单元测试不起作用。我是单元测试方面的新手。请帮忙Java 对数组转换集进行单元测试,java,Java,我有一个数组。我需要将其转换为集合,然后进行单元测试。我成功地完成了设置对话的数组。但是单元测试不起作用。我是单元测试方面的新手。请帮忙 public class ArrToSet { public static void main(String[] args) { String[] array = {"a","b","c"}; System.out.println("Original
public class ArrToSet {
public static void main(String[] args) {
String[] array = {"a","b","c"};
System.out.println("Original Array: " + Arrays.toString(array));
System.out.println("Array converted to Set: " + Arrays.stream(array).collect(Collectors.toSet()));
}
}
我编写的单元测试用例:
class ArrToSetTest {
@Test
void test() {
ArrToSet ar = new ArrToSet();
Set<String> set = new HashSet<>();
set.add("a");
set.add("b");
set.add("c");
String actual[] = {"a","b","c"};
assertEquals(set,actual);
}
}
class-ArrToSetTest{
@试验
无效测试(){
ArrToSet ar=新的ArrToSet();
Set=newhashset();
集合。添加(“a”);
设置。添加(“b”);
设置。添加(“c”);
字符串实际值[]={“a”、“b”、“c”};
资产质量(设定、实际);
}
}
如果一个类通过main
方法公开其API,那么您将无法对该类进行单元测试,而不进行丑陋的攻击。如果您重构ArrToSet
以公开有意义的API,那么测试就会容易得多:
public class ArrToSet {
public Set<String> convert(String[] array) {
return Arrays.stream(array).collect(Collectors.toSet()));
}
public static void main(String[] args) {
String[] array = {"a","b","c"};
System.out.println("Original Array: " + Arrays.toString(array));
ArrToSet arrToSet = ArrToSet();
System.out.println("Array converted to Set: " + arrToSet.convert(array));
}
}
公共类ArrToSet{
公共集转换(字符串[]数组){
返回Arrays.stream(array.collect(Collectors.toSet());
}
公共静态void main(字符串[]args){
字符串[]数组={“a”、“b”、“c”};
System.out.println(“原始数组:“+Arrays.toString(数组));
ArrToSet ArrToSet=ArrToSet();
System.out.println(“数组转换为集合:”+arrToSet.convert(数组));
}
}
现在测试这一点很容易:
@Test
void test() {
ArrToSet ar = new ArrToSet();
Set<String> set = new HashSet<>();
set.add("a");
set.add("b");
set.add("c");
String actual[] = {"a","b","c"};
assertEquals(set, arrToSet.convert(actual));
}
@测试
无效测试(){
ArrToSet ar=新的ArrToSet();
Set=newhashset();
集合。添加(“a”);
设置。添加(“b”);
设置。添加(“c”);
字符串实际值[]={“a”、“b”、“c”};
assertEquals(集合、arrToSet.convert(实际));
}
您测试的目的是什么?您试图断言什么?如果您试图断言字符串数组等于一个集合,则断言应始终失败代码>。不要传递该字符串数组。@Jason-我正在测试并想断言数组和集合是否相等。@Amitkumar-在复制和粘贴此代码时显示编译器错误。