JUnit 4.9リリース

数時間前 JUnit 4.9の最終バージョンが人気のあるTDDフレームワークJUnitのgithubに登場しました。 待望のリリースには何が含まれていましたか?



新しいルール



基本的に、以前のバージョンのルール( @Rule



)で導入された影響を受ける変更。 以前と同様に、テストの機能は、メソッドレベルで追加のルールを使用して拡張できます。 これで、クラス全体、さらにはテストスイートの実装用のルールを定義できます。 どちらの場合も、新しいアノテーション@ClassRule



accを使用して静的フィールドを定義することで結果が得られます。 テストクラス、またはスイート内。



そして、はい、デフォルトのBlockJUnit4ClassRunner



を含むParentRunner



すべての派生物は、新しい種類のルールを正しく処理します。



サーバーへの接続を一度作成し、すべてのスイートテストが完了した後に接続を閉じるテストスイートの例:



<br/>@RunWith(Suite. class )<br/>@SuiteClasses({A. class , B. class , C. class })<br/> public class UsesExternalResource {<br/> public static Server myServer= new Server();<br/> <br/> @ClassRule <br/> public static ExternalResource resource= new ExternalResource() {<br/> @Override <br/> protected void before() throws Throwable {<br/> myServer.connect();<br/> };<br/> <br/> @Override <br/> protected void after() {<br/> myServer.disconnect();<br/> };<br/> };<br/>}<br/> <br/>





MethodRule



への注意:これらの革新に照らして、以前のMethodRule



インターフェースMethodRule



非推奨になり、 deprecated



ステータスにdeprecated



ました。 ルール開発者は、新しいTestRule



インターフェイスを使用して、 @Rule



@ClassRule



両方で使用できるようにする必要があり@ClassRule







JUnit 4.9に含まれるルールの大部分は、すでに新しいインターフェイスに移行しています。 ほとんどのユーザーにとって、APIの変更は気付かれず、既存のテストを変更する必要はありません。



Maven-現在正式に



これまでのところ、匿名のボランティアはMavenのパッケージを作成しており、結果の質は低いです。 バージョン4.9以降、JUnit開発チームがこのタスクを引き継ぎます。 ただし、種類によって判断すると、JUnitの公式ビルドはまだAntで行われていることに注意してください。 それでも、みんなが新しいタスクにhamcrest-core



対処し、たとえば、 hamcrest-core



junit-dep



パッケージの推移的な依存関係を持つ古いレーキ(まだ除外してカットする必要がある)をhamcrest-core



ないことを期待しましょう。



他に何?



プロジェクト構造の見た目の変更(GPLテキストがソースコードの一部になり、Antアセンブリが高速になりました)に加えて、重大なバグが修正されました。



-github# 98 :expectTrue()は予期される例外では機能しません

-github# 74 :カテゴリー+パラメーター化

-github# 38 :ParentRunnerが複数回フィルタリングします

-github# 248 :BlockJUnit4ClassRunnerの保護#rulesメソッドが4.8.2から削除されました

-github# 187 :Java 6への偶発的な依存

-github# 163 :assertEquals(String、String)を使用する場合の不正な比較失敗メッセージ

-github# 227 :ParentRunnerはgetChildren()が変更可能なリストを返すと仮定するようになりました



結論の代わりに



通常、変更のリストはマイナーリリースを正当化します。 コードの品質の改善に貢献した開発者に感謝の意を表し、Habrovsk市民に朗報を送ります。






All Articles