私はTemporaryFolderルールを使用しているJUnit4テストを書いています。 @Ruleと@ClassRuleの両方でうまくいくようです。 Junit @Ruleと@ClassRuleの違いは何ですか?どうして私は別のものを使うべきですか?Junit @Ruleと@ClassRule
13
A
答えて
23
クラスに複数のテストメソッドがある場合、その区別が明確になります。
@ClassRule
は、いずれの試験方法よりも前に実行されるbefore()
メソッドがあります。すべてのテストメソッドが実行され、最後にルールのafter()
メソッドが実行されます。したがって、クラス内に5つのテストメソッドがある場合、before()
とafter()
はそれぞれ1回だけ実行されます。
@ClassRule
は静的メソッドに適用されるため、それに内在するすべての制限があります。
@Rule
は、ターゲットメソッドが実行される前後の処理を実行できるルールのapply()
メソッドでテストを実行します。 5つのテストメソッドがある場合、各メソッドのラッパーとして、ルールのapply()
が5回呼び出されます。
静的メソッドですべてのテストメソッドで再利用できるものを設定するには、@ClassRule
を使用してください。
を使用して、テストメソッドごとに新たに作成する必要があるか、リセットする必要があります。
1
@Ruleを@BeforeClassの前に実行するように設定することはできません。
@ClassRuleは静的メソッドでなければなりません。
関連する問題
- 1. @RuleのJUnitパラメータ@Beforeと@After
- 2. JUnit @Ruleライフサイクルと@Beforeのやりとり
- 3. Junit外部リソース@Rule Order
- 4. Kotlinで@ClassRuleを使用する
- 5. junitを更新すると@RuleとTestNameでコンパイルエラーが発生する
- 6. NoSQLを使用したSpringデータランダム(埋め込み)MongoポートJUnit @Rule
- 7. debian/rule?
- 8. スイート内のすべてのテストケースにJUnit @Ruleを適用する方法
- 9. JUnit @Ruleを使用してMockitoによるパラメータ化されたテスト?
- 10. junit @Rule、expectMessage()、1つのテスト済みメソッドでのマルチプル例外のmatcherの使用
- 11. JUnitで '@Test'の後に '@After'の後に '@Rule'を入力してください
- 12. JUnit Test ExpectedExceptionとTestWatcher @ Ruleの両方を使って競合と競合の両方をテストします
- 13. Apache Rewrite Rule Loop
- 14. PostgreSQL RULE order
- 15. Boyer-Moore Galil Rule
- 16. Scrapy:Linkextractor Rule not working
- 17. CSS @ font-face rule
- 18. swiftlint open brace rule
- 19. PowerMockRunnerはJUnit ClassRulesを適用しません
- 20. htaccess rewrite rule - url param
- 21. mod_security rule 981203 false positive
- 22. HaskellのProlog Rule Squaring
- 23. Scrapy Json Rule SgmlLink Extractor
- 24. Prestashop show tax rule name
- 25. 静的classRuleにSpring Beanを挿入する方法は?
- 26. Http to Http rule rewrite Azure
- 27. jquery validation、change rule最小値
- 28. Maven-version-plugin、ruleset、rule&ignoreVersionsタグ
- 29. JUnitの@Rule注釈付きフィールドが公開される必要があるのはなぜですか?
- 30. JUnit 3とJUnit 4の相違点