[ニュース]AssertJ 3.6.X - Joel Costigliolaへのインタビュー

[ニュース] AssertJ 3.6.X – Joel Costigliolaのインタビュー

1. 前書き

AssertJは、Javaに流暢なアサーションを提供するライブラリです。 あなたはそれについてもっと読むことができますherehere

最近、3.6.0バージョンと2つの小さなバグ修正リリース3.6.1および3.6.2がリリースされました。

今日、ライブラリの作成者であるJoel Costigliolaが私たちと一緒にいて、リリースと将来の計画についてもう少し詳しく説明します。

「私たちはAssertJを本当にコミュニティ指向にしようとしています」

2. バージョン2.6.0と3.6.0は、かなり同時にリリースされました。 それらの違いは何ですか?

2.x versions target Java 7 while 3.x target Java 8. これを見る別の方法は、3.x = 2.x Java 8固有の機能です。

3. 3.6.0 / 2.6.0で登場した最も注目すべき変更/追加は何ですか?

2.6.0 ended up having different small features but no big additions. 私が選択しなければならない場合、最も興味深いものは、抑制された例外に関連するものです。–hasSuppresedException()hasNoSuppresedExceptions()

3.6.0 additionally got a way of checking multiples assertions on array/iterable/map entry elements:

4. 3.6.0のリリース以降、2つのバグ修正リリースが表示されました(3.6.1、3.6.2)。 そこで何が起こったのか、何を修正する必要があるのか​​、もう少し教えていただけますか?

3.6.1では、filteredOn(Predicate)Listでのみ機能し、Iterable,では機能しませんでした。

3.6.2では、Java 8のデフォルトのgetterメソッドからプロパティを抽出することを考えていませんでした。内部リファクタリングを行った後、すぐに機能しなかったことがわかりました。

次のリリースを待つことができるかどうかをユーザーに尋ねたところ、バグレポーターは待機してもいいと言っていましたが、別のユーザーがそれを望んでいたので、新しいバージョンをリリースしました。 We are trying to make AssertJ really community-oriented、リリースのカットは安価なので(ドキュメントの部分を除いて)、通常、リリースに問題はありません。

5. 最新のリリースに取り組んでいるときに、興味深い技術的な課題に遭遇しましたか?

次のリリース3.7.0の作業中に発生した問題を指摘します。これは数週間のうちに解決されるはずです。

Java 8は、「曖昧な」メソッドシグネチャにこだわりがあります。 ThrowingCallable(例外をスローするCallableである単純なクラス)を受け取る新しいassertThatメソッドを追加しましたが、Java 8はそれを取る別のassertThatメソッドと混同していることが判明しました。 Iterable!

2つの間にあいまいさが見られないので、それは私にとって最も驚きでした。

6. もうすぐ新しいメジャーリリースを計画していますか? Java 9の追加機能を利用するものはありますか?

次の週/ 1か月。 We usually try to have releases every few months or when there are major additions.

AssertJチームに加わったPascalSchumacherは、互換性をチェックするためにJava 9でいくつかの作業を行いましたが、Java 9がアクセスルールを変更したため、主にイントロスペクションに依存するものなど、いくつかの機能が動作しません。 3.x対2.xと同じ戦略に従って、Java 9に焦点を当てた4.xブランチを開始し、4.x = 3.x + Java 9機能を使用します。

Once 4.0 is officially released we will likely drop 2.x active developmentですが、3つのバージョンの同期を維持する能力がないため、PRを引き続き受け入れます。つまり、nxバージョンからn + 1.xバージョンへの変更を報告するため、2.xに何かを追加します。 3.xと4.xの両方で報告する必要がありますが、現時点ではそれは大変な作業です。