実行中の機能のメソッドを取得するにはどうすればよいですか? さまざまなデータセットを使用してデータベースを準備したいと考えています。このデータセットは、次のような注釈で定義する必要があります。
@PrepareDB("dataset1")
def "feature 1"() {
}
次のように setup メソッドで使用する必要があります。
def setup() {
def dataset = currentTestMethod.getAnnotation().value //pseudo method
prepareDB(dataset)
}
JUnit4でも同じことをしました。@Rule を使用して現在のメソッド名を取得し、リフレクションごとにアノテーション値を取得しました。スポックでこれを行うにはどうすればよいですか?
更新:私は自分で解決策を見つけました。JUnit4 の TestWatcher を使用すると、現在実行中のテスト メソッドから注釈を取得できます。
@Rule
public TestRule watcher = new TestWatcher() {
protected void starting(Description description) {
println description.getAnnotation(PrepareDB.class).value()
};
};