JUnitのの@BeforeClass
と@AfterClass
は静的に宣言する必要があります。 @BeforeClass
のための良い回避策hereがあります。私はクラス内で多数の単体テストを行い、一度初期化して一度クリーンアップしたいだけです。 @AfterClass
の回避策を入手する方法についてのヘルプはありますか?追加の依存関係を導入せずにJunitを使用したいと思います。ありがとう!JUnitの@AfterClass(非静的)
答えて
@BeforeClass
で説明した回避策に似たものが必要な場合は、実行されたテストの数を把握してから、すべてのテストが実行されたら最後に終了クリーンアップコードを実行します。
public class MyTestClass {
// ...
private static int totalTests;
private int testsRan;
// ...
@BeforeClass
public static void beforeClass() {
totalTests = 0;
Method[] methods = MyTestClass.class.getMethods();
for (Method method : methods) {
if (method.getAnnotation(Test.class) != null) {
totalTests++;
}
}
}
// test cases...
@After
public void after() {
testsRan++;
if (testsRan == totalTests) {
// One time clean up code here...
}
}
}
これは、スーパークラスから継承されたメソッドを占め、このソリューションは、メソッドを継承しませんようthisを確認する必要がある場合は、JUnitの4を使用している前提としています。
これは単純なケースでは機能するかもしれませんが、テストが無視された場合は動作しません。継承されたテストで – dkatzel
@dkatzel良い点。また、[this](https://stackoverflow.com/questions/28400408/what-is-the-new-way-of-getting-all-methods-of-a-)のようなことを行うことで、継承されたメソッドを繰り返し処理することもできます。クラスを含む継承されたdefau)。おそらく一度だけ静的なものとして掃除し、 '@ AfterClass'の間にそれを世話するべきであるリソースを保つのが最善でしょう。 – kingkupps
- 1. Midje Clojureに相当するJUnit AfterClass?
- 2. C++静的非静的
- 3. 非静的メンバーの静的メンバー関数
- 4. 静的関数内の非静的パラメータ
- 5. 非静的メソッドはその静的な?
- 6. 静的/非静的メソッドの問題
- 7. 非静的メソッド
- 8. 非静的
- 9. 静的メソッドの非表示と非静的メソッドのオーバーライド
- 10. 静的メソッドと非静的メソッド
- 11. 非静的から静的へ
- 12. 非静的フィールドは静的、コンテキストMainメソッド
- 13. 静的vs.非静的スタックStack
- 14. Boost.Bind非静的メンバー
- 15. Ember非静的Navbar
- 16. は非静的フィールド
- 17. 静的初期化子は、静的なユーティリティクラスのメソッドをテストするJUnitテスト
- 18. Javaの非静的変数
- 19. JUnitの@BeforeClassが本質的に静的な理由
- 20. 静的関数の非静的データの長さ
- 21. ヘルパークラスと非静的メソッドの静的メソッドの使用
- 22. Java - 静的と非静的のパフォーマンスの差
- 23. 非静的/一定値
- 24. Spring MongoDB:Criteriaメソッド非静的アクセス
- 25. JTable、データ、非静的メソッド
- 26. 非静的変数は
- 27. 非静的メンバ変数
- 28. Java APK非静的使用
- 29. mvcの静的または非静的なアクション?
- 30. 静的メソッドから非静的メンバー変数へのアクセス
静的メソッドを使用してセットアップを中止することは何を止めていますか?確かに、設定した状態は静的なフィールドに移動する必要がありますが、静的なスコープを持つように思えます。 –
テストインスタンスを 'static'フィールドに保存します。あなたの '@ AfterClass'メソッドでそれにアクセスし、必要なクリーンアップメソッドを呼び出します。 –
あなたは[JUnitの規則](https://github.com/junit-team/junit4/wiki/にセットアップとティアダウンメソッドをリファクタリングすべきよう – jamesw1234