Java junit测试以检查文件的创建
如果您有一个循环,它每5秒创建一次文本文件,并根据创建的时间戳对其进行命名,您是否可以创建junit测试,以查看它是否已创建?你怎么检查Java junit测试以检查文件的创建,java,junit4,mule,Java,Junit4,Mule,如果您有一个循环,它每5秒创建一次文本文件,并根据创建的时间戳对其进行命名,您是否可以创建junit测试,以查看它是否已创建?你怎么检查 谢谢你的帮助我会用。并检查是否调用了create方法以及使用了哪个文件名。您可以随时检查文件是否存在,但这更多的是集成测试而不是单元测试 建议的方法是创建某种类型的FileCreator接口,如下所示 public interface FileCreator { void createFile(Date date); } 创建格式化时间的实现,然后进
谢谢你的帮助我会用。并检查是否调用了create方法以及使用了哪个文件名。您可以随时检查文件是否存在,但这更多的是集成测试而不是单元测试 建议的方法是创建某种类型的
FileCreator
接口,如下所示
public interface FileCreator {
void createFile(Date date);
}
创建格式化时间的实现,然后进行单元测试-在调用createFile
时,验证文件是否确实已创建。这应该很简单
现在,在创建文件的类中使用它——假设它是这样的
public class FileCreationManager {
private final FileCreator fileCreator;
private final ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor();
private Future<?> taskHandle;
public FileCreationManager(final FileCreator fileCreator) {
this.fileCreator = fileCreator;
}
public void startFileCreation() {
taskHandle = executorService.scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
fileCreator.createFile(new Date());
}
}, 0, 5, TimeUnit.SECONDS);
}
public void stopFileCreation() {
taskHandle.cancel(false);
executorService.shutdown();
try {
executorService.awaitTermination(1, TimeUnit.MINUTES);
} catch (InterruptedException ex) {
Thread.currentThread().interrupt();
}
}
}
公共类FileCreationManager{
私有最终文件创建者文件创建者;
private final ScheduledExecutorService executorService=Executors.newSingleThreadScheduledExecutor();
私人未来任务手柄;
公共文件创建管理器(最终文件创建者文件创建者){
this.fileCreator=fileCreator;
}
public void startFileCreation(){
taskHandle=executorService.scheduleAtFixedRate(新的可运行(){
@凌驾
公开募捐{
createFile(新日期());
}
},0,5,时间单位为秒);
}
公共void stopFileCreation(){
taskHandle.cancel(假);
executorService.shutdown();
试一试{
执行人服务。等待终止(1,时间单位。分钟);
}捕获(中断异常例外){
Thread.currentThread().interrupt();
}
}
}
单元测试可以通过FileCreator
的虚拟实现,只需检查createFile
是否使用正确的Date
调用即可
你可以运行创建线程几秒钟,然后收集传递到
集合中的日期
-你的单位接下来需要检查日期
是否相隔5秒,以及它们的数量是否正确。我会模拟用于实际创建文件的对象,并验证是否使用正确的参数调用了创建函数。IMHO它不再是一个单元测试了,如果你真的需要验证文件系统中创建的文件。。。