はここに私のコード例Groovy内の別のオブジェクトの内部でインスタンス化されたオブジェクトをモックする方法はありますか?
class CommandLine {
def ls() {
def cmd = "ls".execute()
if(cmd.waitFor() != 0) {
throw new Execution()
}
return cmd.text
}
}
cmd
変数は型のjava.lang.Processのオブジェクトを保持しているのです。スローされた例外をテストするには、waitFor()
メソッドをどうやって模擬しますか?私ができない場合、自動テストを容易にするためにこれを書き換えることができる方法はありますか?
一般に、別のクラスの中でインスタンス化されたオブジェクトをモックするにはどうすればよいでしょうか、あるいはテストのためにコードをどのように構造化しますか?
一般的な手法は、 'execute'関数をモックアップして、正規のものではなく'模擬した 'java.lang.Process'を返すことです。 – bezmax