2016-08-26 4 views
-1

現在、私はGroovyでいくつかのSeleniumテストを作成しています。私は各セクションに別々のテストクラスを持っており、そのステップはテストメソッドです。テストでは、シーケンスを正しく実行するためにテストが実行されています。テストでは、私はjUnit 4.11を使用しています。jUnitは変数をリセットしたり静的変数を保持します

私のテスト(ログインなど)には、グローバル変数メールがあります。この変数は、テストがこのテスト用の特別なアカウント(テストクラス全体)を作成した後に入力されます。私は各テストクラスでこのプロセスを行い、うまく動作する新しいアカウントを持っています。

電子メールを静的に設定しないと、jUnitはクラス内の各テスト後に電子メール変数を置き換えます。しかし、静的に設定して別のテストを実行すると(パスワードを忘れたなど)、以前と同じメールを使用しています。

私の実際の質問は、jUnitテストでグローバル変数(スタティックではない)をリセットできないということですか?

+0

私が正しく理解していれば、インスタンス変数の値を1つのテストから次のテストに生き残ることができます。私が正しく覚えていれば、JUnitはテストメソッドを実行するたびに新しいインスタンスを作成します。静的変数を使用する必要があります。また、一般に、JUnitがテストメソッドを実行する順序を制御しないため、テストが不安定になることがあります。二度考えてください。 :-) –

+0

私は '@FixMethodOrder(MethodSorters.NAME_ASCENDING)'を使ってテスト内での注文を保ちます。静的変数をプライベートに設定することで私の問題を回避することができます。 –

+0

これは適切な方法のように聞こえます(今では、テストからテストまでの価値を維持したいと主張しています)。 –

答えて

0

おそらく@Beforeメソッドで変数を定義する必要があります。したがって、各テストで、変数は最初に初期化されます。

+0

私が書いたように、私は変数全体を生成する必要があります。私は解決策を見つけたと思う、私の問題の2番目のコメントを参照してください –

関連する問題