TestNG Assert 对List的支持

public class RiskLabelHelper {
    public static Set<String> getRiskLabel(String type) {
        return null;
    }

    @Test
    public void testAssert() {
        Set<String> aa = new HashSet<String>();
        Set<String> bb = new HashSet<String>();

        aa.add("11");
        aa.add("22");

        bb.add("22");
        bb.add("11");
        //        bb.add("33");

        Assert.assertEquals(aa, bb);

        List<List<String>> cc = new ArrayList<List<String>>();
        List<String> ee = new ArrayList<String>();
        ee.add("11");
        ee.add("22");
        List<String> ff = new ArrayList<String>();
        ff.add("aa");
        ff.add("bb");
        cc.add(ee);
        cc.add(ff);

        List<List<String>> dd = new ArrayList<List<String>>();
        List<String> gg = new ArrayList<String>();
        gg.add("11");
        gg.add("22");
        List<String> hh = new ArrayList<String>();
        hh.add("aa");
        hh.add("bb");
        dd.add(hh);
        dd.add(gg);

        Assert.assertEquals(cc, dd);

    }
}

第一个比较 Assert.assertEquals(aa, bb); 返回true,说明对象String顺序对list 无影响。

第二个比较Assert.assertEquals(cc, dd); 返回false,说明对象List<String>顺序对list有影响。

报错为 

FAILED: testAssert

java.lang.AssertionError: Lists differ at element [0]: [aa, bb] != [11, 22] expected [[aa, bb]] but found [[11, 22]]

猜测其原因,应该为List<String> 被转换成数组进行比较了,数组的顺序为固定的。


你可能感兴趣的:(TestNG)