Javaで静的メソッドを簡単に模倣するにはどうすればよいですか?Javaで静的メソッドを簡単に模倣する方法(jUnit4)
私はので、私はリファクタリング、それはより多くのユニット・テストが可能であることをすることはできません私のサービスを呼び出す必要がある静的メソッドをコントロールしていない春2.5とJUnit 4.4
@Service
public class SomeServiceImpl implements SomeService {
public Object doSomething() {
Logger.getLogger(this.class); //a static method invoked.
// ...
}
}
を使用しています。私は例としてLog4J Loggerを使用しましたが、実際の静的メソッドは似ています。 静的メソッドを変更することはできません。私はJavaで似た何かをするにはどうすればよい
def mockedControl = mockFor(Logger)
mockControl.demand.static.getLogger{Class clazz-> … }
…
mockControl.verify()
:
Grailsの作業をやって、私は次のようなものを使用して使用していますか?
SomeServiceImpl実装を変更できますか? –
心配しないで、Jon Skeetはちょうど私が思ったことを投稿しました。私は誇りに思う! (Jon Skeet heheのように思う) –
はい私はSomeServiceImplを変更することができますが、どうすればいいですか?なぜ間接的な間接化ですか? –