我正在尝试为调用FileWriter的方法编写单元测试。我正在使用JUnit 4.8,Powermock和Mockito。我正在测试的方法看起来像这样。调用FileWriter的单元测试方法
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
}
}
如果文件和FileWriter的是在方法外声明,我可以用和的Mockito嘲笑powermock他们,所以我可以测试方法被调用,因为我练BDD可能发生的可能出现的情况。但是,我无法修改自其他开发人员创建它们以来所测试的代码(尽管我认为开发人员有责任创建单元测试)。
我想知道如何(如果可能的话)在文件和fw之类的方法下模拟对象。如果在if()或loop()下创建对象,那么该怎么办?他们也可以被嘲笑吗?
如果我在想什么是不可能的,你可以建议什么建议来测试这种方法?我还了解了JUnit的TemporaryFolder。我可以用这个代替文件来创建文件夹和文件吗?
谢谢。