我正在编写一个JUnit测试,用于测试我在java 1.4中使用时间类的一些函数。这个测试用例的作用是创建一个文件,该文件将被传递给我正在测试的函数。我的方法是使用timer.schedule(TimerTask task, long delay);
删除该文件。我的测试用例正在运行,但它并没有等待延迟传递给timer.schedule()
。我的代码示例如下。
测试功能:
public void clean(String fileName){
long delay = 1000 * 60;
timer = new Timer();
final File f= new File(fileName);
if(!f.exists()){
f.createNewFile();
}
timer.schedule(new RemoveFile(f), delay);
//RemoveFile() is inner class which extends
TimerTask and remove the file. TimerTask is
an abstract class that implements
Runnable interface.
}
我的TestCase如下
public void testClean(){
String file = "c:\\Users\\abc\\abc.txt";
Cleaner instance = Cleaner.getInstace(); //Static method
instance.clean(file);
}
此测试用例不会等待TimerTask完成其功能。我不知道如何等待测试用例等待TimeTask线程完成其工作。