次のメソッドをテストしたいのですが、具体的には write メソッドと close メソッドが呼び出されたことを確認したいと思います (書き込みチェックの場合、書き込まれた内容は期待どおりでした)。本当のソース コードは Java で、Groovy でテストを書いています。デフォルトのコンストラクターがないため、マップ強制を使用できません。mockFor と metaClass を試しましたが、ソースを groovy に変更し、単体テストを groovy に変更した場合にのみ機能します。このコードをテストするためのオプションはありますか? 以下のコードはグルーヴィーですが、Java メソッドのソースは非常に似ています。実際のヘッダーが生成され、いくつかの日付ロジックが実行され、結果が書き込まれます。
class TestWriter {
protected void writeResultToXMLFile(String response,FileWriter fw, Date today){
String header = "header";
try{
fw.write(header);
fw.close();
} catch (IOException ioe){
String errorMessage = "Unable to write to file";
try{
fw.close();
}catch (IOException ioException){
errorMessage += ", Error attempting to close the file";
}
}
}
}