JUnit フレームワークには 2 つのAssert
クラス (明らかに異なるパッケージ) が含まれており、それぞれのメソッドは非常に似ているように見えます。これがなぜなのか説明できる人はいますか?
私が参照しているクラスは次のとおりjunit.framework.Assert
ですorg.junit.Assert
。
JUnit フレームワークには 2 つのAssert
クラス (明らかに異なるパッケージ) が含まれており、それぞれのメソッドは非常に似ているように見えます。これがなぜなのか説明できる人はいますか?
私が参照しているクラスは次のとおりjunit.framework.Assert
ですorg.junit.Assert
。
(JUnit 3 の) 古い方法は、 を拡張してテストクラスをマークすることでしたjunit.framework.TestCase
。これはそれ自体を継承junit.framework.Assert
し、テスト クラスはこの方法で assert メソッドを呼び出すことができるようになりました。
JUnit のバージョン 4 以降、フレームワークはAnnotations
テストのマーキングに使用します。したがって、拡張する必要はもうありませんTestCase
。しかし、それは assert メソッドが利用できないことを意味します。Assert
ただし、新しいクラスを静的にインポートすることはできます。そのため、新しいクラスのアサート メソッドはすべて静的メソッドです。したがって、次の方法でインポートできます。
import static org.junit.Assert.*;
この静的インポートの後、プレフィックスなしでこのメソッドを使用できます。
org.junit
再設計の際、彼らは、パッケージの命名に関する通常の慣例によりよく従う新しいパッケージにも移行しました。
JUnit 3.X:junit.framework.Assert
JUnit 4.X:org.junit.Assert
特にアノテーションをサポートするJDK5以降を実行している場合は、最新のものをお勧めします。
実際には機能的な変更があります:org.junit.Assert
は 2 つの引数assertEquals()
をfloat
ordouble
で使用すると文句を言いますが、junit.framework.Assert
は黙って自動ボックス化します。
からリファクタリングしjunit.framework
てorg.junit
おりjunit.framework.Assert
、下位互換性のために維持されていると思います。
ソースコードの大まかな比較を行いましたが、重大な変更はありません。多くのコメントが追加されorg.junit.Assert
、いくつかのリファクタリングが行われました。唯一の変更点は、 との比較Arrays
です。いくつかのコードのクリーンアップがありますが、(imho)機能的な変更はありません。