天天看點

警惕 assertEquals 和 assertNotEquals,謹慎使用 assertNotEquals

在使用  org.testng.Assert  中的

     assertEquals(long actual, long expected)   和  assertNotEquals(**,**) 的時候 注意 比較兩端資料類型,

       在 Assert 類中提供的 

            assertEquals  支援:boolean double float  int long  Map  Object  byte[]  byte char  Coolection等        具體見API

         assertNotEquals  隻支援 : float double Object 這三種類型 ,

         使用中 如果是不支援的資料類型   就會調用  Object  這種類型! 

                        例如:

    long long1 = 10L;

    long long2 = 10L;

// 以下 代碼 全部通過,不會産生 assert 退出;

    Assert.assertEquals(long1, long2); //Assert.assertEqualslong,long)

    Assert.assertEquals(long1, 10); //Assert.assertEquals(long,long)

    Assert.assertNotEquals(long1, 10);//Assert.assertNotEquals(Object,Object)

    Assert.assertNotEquals(long2, 10); //Assert.assertNotEquals(Object,Object)

    Assert.assertNotEquals(long2, 9);//Assert.assertNotEquals(Object,Object)