FileWriter を呼び出すメソッドの単体テストを作成しようとしています。JUnit 4.8、Powermock、Mockito を使用しています。私がテストしている方法は次のようになります。
public void methodToTest(String fileName, String text){
File file = new File (someStaticString) //string is a static field of the class and the path is a dir
if(!file.exist()){ //create dir}
try{
FileWriter fw = new FileWrite(file.getAbsolutePath() + "/" fileName, true);
fw.write(text);
fw.close();
}
catch(Exception e){
e.printStackTrace
}
}
file と fileWriter がメソッドの外部で宣言されている場合、mockito と powermock を使用してそれらをモックできるため、BDD を実践しているため、メソッドが呼び出された場合に発生する可能性のあるシナリオをテストできます。ただし、他の開発者が作成したため、テストしているコードを変更することはできません (単体テストを作成するのは開発者の責任だと思いますが)。
file や fw のようなメソッドの下でオブジェクトをモックする方法 (可能であれば) を考えています。if() または loop() の下に作成されたオブジェクトがある場合はどうですか? 彼らも嘲笑することができますか?
私が考えていることが不可能な場合、この種の方法をテストするためにどのような推奨事項を提案できますか? JUnit の TemporaryFolder についても学びました。これをファイルの代わりに使用して、フォルダとファイルを作成できますか?
ありがとう。