SqlCounterと呼ばれる機能(テストリスナー)を書いています。
これは、テスト実行中に実際のSQLクエリをカウントすることを目的としています。
この数が大きい場合、特殊なenvプロパティー - テストが失敗します。SpringとJUnitで@Beforeと@Testを実行するロジックを実装する
問題は次のとおりです。多くのクエリを実行する@Beforeメソッドにいくつかのロジックがあります。私が必要とするのは、すべての "前"のフック(テストメソッド実行の開始直前)の後に、実際に "SQLカウンタ"をクリアすることです。
しかし、すべて私には知られている方法(org.springframework.test.context.support.AbstractTestExecutionListener:beforeTestMethod、org.junit.rules.TestWatcher:開始、org.junit.rules.TestRule:適用)のJUnitの@Before前に実行
私はすべての@Beforeで(NOT明示的にこのSQLカウンタをクリアしたい )が、中に@Beforeとの間で右に呼び出されなければならないいくつかのリスナー、@:)
更新; :(
は、私を助けてください注釈付きメソッドのテスト
を追加することで、以下の実施を提案することができることに基づいて
あなたはクリアコードを追加することができますあなたの@BeforeメソッドのSQLカウンタは、セットアップされたSQLが実行された後にですか? –
この記事のようにttddyy/datasource-proxy(https://github.com/ttddyy/datasource-proxy)の助けを借りて実装されています - https://vladmihalcea.com/2014/02/01/how-to-detect -n-plus-one-query-problem-during-testing(QueryCountHolder.clear();) – Alex