java asserttrue用法 - 2個JUnit Assert類之間的差異





python (5)


舊的方法(JUnit 3)是通過擴展junit.framework.TestCase來標記測試類。 繼承的junit.framework.Assert本身和你的測試類獲得了以這種方式調用斷言方法的能力。

從JUnit的第4版開始,框架使用Annotations來標記測試。 所以你不再需要擴展TestCase 。 但這意味著,斷言方法不可用。 但是你可以靜態導入新的Assert類。 這就是為什麼新類中的所有斷言方法都是靜態方法的原因。 所以你可以這樣導入它:

import static org.junit.Assert.*;

在這個靜態導入之後,你可以使用這個方法而不需要前綴。

在重新設計時,他們也轉向了新的org.junit軟件包,該軟件包更符合軟件包命名的常規慣例。

JUnit框架包含2個Assert類(很明顯,在不同的包中),每個方法看起來都非常相似。 任何人都可以解釋為什麼這是?

我所指的類是: junit.framework.Assertorg.junit.Assert




我做了一個粗略的源代碼比較,沒有發生嚴重的變化。 org.junit.Assert中添加了很多註釋,並且一些重構已完成。 唯一的變化是與Arrays的比較。 有一些代碼清理,但是(imho) 沒有功能改變




JUnit 3.X: junit.framework.Assert

JUnit 4.X: org.junit.Assert

最好使用最新版本,特別是在運行JDK5及更高版本時註解支持。




實際上有一個功能上的變化: org.junit.Assert會抱怨,如果你使用雙參數assertEquals() floatdouble ,而junit.framework.Assert會默默地autobox它。




通常,單元測試旨在運用類或單元的公共接口。 因此,私有方法是您不希望顯式測試的實現細節。







java unit-testing junit junit4 assert