2011-11-14 6 views
0

私はpowermockを使ってLogger.getInstance()メソッドをモックします。これは、junitがクラスをリロードしないようで、最初のテスト・テスト・クラスに間違ったロガー・インスタンスがあると問題を引き起こします。junitリロードクラス

​​

LoggedClassのログインスタンスが古いため、テストに失敗します。私は明示的に新しいロガーインスタンスを注入することができますが、モックされる必要のある静的変数がたくさんある場合は面倒です。

新しいテストを実行するたびにクラスをリロードするようにju​​nitを設定するにはどうすればよいですか?

答えて

2

第二のテストが失敗した理由は、あなたが各テストのためのあなたの@Before方法でlogの新しいインスタンスを作成しているが、Logger.getInstance()への呼び出しがstaticですので、それは一度だけ起こっているということです。 @Beforeにあるものを@BeforeClassで行うことを検討してください。

各テストのlogの新しいインスタンスを作成するには理由があるように思えません。 mockであるため、リセットすることができます。

+0

私はそれについて考えましたが、ログモックをテスト間で共有することは望ましくありません。 –

+0

をリセットするだけです。これは、新しいものを作成するのと同じ効果です。 –