各テストの前に常に既知の状態にリセットすることで、テストをクリーンアップしようとしています。 JUnitでは、これを行う最善の方法は、いくつかのフィールドの値を設定するsetup()
メソッドを持つことです。テストを並行して実行する場合、各テストはテストの新しいインスタンスで実行されるため、フィールドは常に正確です。既知の状態からテストを開始する - マルチスレッドはどうですか?
しかし、TestNGではこれは当てはまりません。 post on their mailing listによれば、マルチスレッドテストで@BeforeMethod
のフィールドを設定しても、その値は保証されません。
私は既知の状態にあることをテストしているクラスが必要なので、DataProviderを使用するか、「マルチスレッドモードでテストを実行しないでください」と言うよりも、これに対してよりクリーンなソリューションがありますか?
TestNGテストケースでインスタンス変数として 'ThreadLocal'を使うのはどうですか? –