0
私は以下の注釈とjunitテストのルール初期化部分を持っています。 目的は、異なる構成を使用して、できるだけ簡単にテストを行うことです。
// Annotation
@Retention(RetentionPolicy.RUNTIME)
public @interface ConnectionParams {
public String username();
public String password() default "";
}
// Part of the test
@ConnectionParams(username = "john")
@Rule
public ConnectionTestRule ctr1 = new ConnectionTestRule();
@ConnectionParams(username = "doe", password = "secret")
@Rule
public ConnectionTestRule ctr2 = new ConnectionTestRule();
ここで、次のTestRuleの注釈パラメータにアクセスしたいが、注釈は見つからない。
public class ConnectionTestRule implements TestRule {
public Statement apply(Statement arg0, Description arg1) {
if (this.getClass().isAnnotationPresent(ConnectionParams.class)) {
... // do stuff
}
}
}
TestRule内のアノテーションにアクセスするにはどうすればよいですか?
私の目標は、異なる構成のテストを実行することです –
私は答えを更新しました。最初にオブジェクト/フィールドから注釈を見つけてからアノテーションを取得し、最後に設定をテストに渡す必要があります – ScanQR
TestRuleはどこで使用されるかわからないため、推奨される "class_in_which_object_created.getDeclaredFields()"は機能しませんでる。 –