分別看一下JUnit和TestNG對(duì)assertEquals()的定義:
JUnit:
static void assertEquals(java.lang.Object eXPected, java.lang.Object actual)
static void assertEquals(java.lang.String message, java.lang.Object expected, java.lang.Object actual)
TestNG:
static void assertEquals(java.lang.Object actual, java.lang.Object expected)
static void assertEquals(java.lang.Object actual, java.lang.Object expected, java.lang.String message)
忽略各參數(shù)的類型不予考慮,重新看 actual, expected, message 這三個(gè)參數(shù)的前后順序:
JUnit中的順序是:(message), expected, actual。
TestNG中的順序是:actual, expected, (message)。
這其中的細(xì)微區(qū)別是,actual(實(shí)際值)與expected(期望值)的前后順序,當(dāng)message(信息文本)存在時(shí)它與另外兩個(gè)參數(shù)的相對(duì)位置。在JUnit中,message(假如它存在的話)處于優(yōu)先位置,其次是expected,再次是actual;而在TestNG中,恰恰是完全相反,actual處于優(yōu)先位置,其次是expected,再次是message。
相比較而言,我認(rèn)為TestNG對(duì)assertEquals()的定義更符合人的思維邏輯,也就是所謂的“用戶友好性”另強(qiáng)一些。當(dāng)然這只是個(gè)人觀點(diǎn),見仁見智嘛。
當(dāng)初我第一次看到JUnit中assertEquals()的定義時(shí),就在想,為什么不是actual在前而expected在后?今天第一次看到TestNG對(duì)assertEquals()的定義,忽然有種“英雄所見略同”的感覺。當(dāng)然現(xiàn)在提這一出有些“馬后炮”的味道。
就憑這一點(diǎn),我為TestNG叫好!
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注