Java 8 で導入されたインターフェースのデフォルト メソッドの実装について少し混乱しています。インターフェースとその実装メソッド専用の JUnit テストを作成する必要があるかどうか疑問に思っていました。グーグルで検索してみましたが、ガイドラインが見つかりませんでした。お知らせ下さい。
質問する
6907 次
1 に答える
11
メソッドの複雑さに依存します。コードが簡単な場合は、実際には必要ありません。たとえば、次のようになります。
public interface MyInterface {
ObjectProperty<String> ageProperty();
default String getAge() {
return ageProperty().getValue();
}
}
コードがより複雑な場合は、単体テストを作成する必要があります。たとえば、次のデフォルト メソッドは次のComparator
とおりです。
public interface Comparator<T> {
...
default Comparator<T> thenComparing(Comparator<? super T> other) {
Objects.requireNonNull(other);
return (Comparator<T> & Serializable) (c1, c2) -> {
int res = compare(c1, c2);
return (res != 0) ? res : other.compare(c1, c2);
};
}
...
}
それをテストする方法は?
インターフェイスからデフォルト メソッドをテストすることは、抽象クラスをテストすることと同じです。
于 2014-09-16T09:51:56.597 に答える