JUnit フレームワークには 2 つのAssert
クラス (当然ながら異なるパッケージ) が含まれており、それぞれのメソッドは非常によく似ているように見えます。なぜそうなるのか説明できる人はいますか?
私が言及しているクラスは、junit.framework.Assert
とですorg.junit.Assert
。
ベストアンサー1
以前の方法 (JUnit 3) では、 を拡張してテスト クラスをマークしていましたjunit.framework.TestCase
。これにより、junit.framework.Assert
それ自体が継承され、テスト クラスはこのようにアサート メソッドを呼び出すことができるようになりました。
JUnit バージョン 4 以降、フレームワークはAnnotations
テストのマーキングに を使用します。そのため、 を拡張する必要はなくなりましたTestCase
。ただし、これはアサート メソッドが利用できないことを意味します。ただし、新しいAssert
クラスを静的にインポートすることはできます。これが、新しいクラスのすべてのアサート メソッドが静的メソッドである理由です。したがって、次のようにインポートできます。
import static org.junit.Assert.*;
この静的インポートの後、プレフィックスなしでこのメソッドを使用できます。
org.junit
再設計時に、パッケージ命名に関する通常の規則により適切に従った新しいパッケージに移行しました。