python中文件相关函数的测试

2024-09-21 03:18:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我对软件测试比较陌生。我想知道如何用python编写与文件相关的函数的单元测试。e、 如果我有一个文件复制功能,如下所示。在

def copy_file (self):   
    if not os.path.isdir(dest_path):
        os.makedirs(dest_path)
    try:
        shutil.copy2(src_path, dest_path)
    except IOError as e:
        print e

我应该如何测试上述功能?我应该断言什么(目录、文件内容、异常)?在


Tags: 文件path函数self功能ifosdef
3条回答

我想,您可以从test_shutil本身得到一些线索,看看它是如何测试复制功能的。也就是说,它正在移动文件并使用另一个模块测试它是否存在。标准行为的差异shutil.复制如果目的地不存在,则在处理该目标时。在shutil.copy2号文件,如果目标不存在,则会创建一个从源移动的文件,在您的情况下,它不是文件,但会创建一个目标目录,然后您将源文件移动到该目录中。因此,在那里编写测试目的地不存在,并确保在您的包装器运行后,目标仍然是一个目录,并且它包含shutil移动的文件。在

想想你对你的方法提出的要求,比如:

  • 如果source_dir不存在或源或目标控制器不可访问,则该方法应报告错误
  • 如果不存在create destination_dir,则该方法应报告create destination_dir;如果无法创建destination dir,则应报告错误
  • 如果source或destination dir有非法值(null或目录的非法字符),则该方法应报告错误
  • 该方法应将所有文件从源目录复制到目标目录
    • 检查是否已复制所有文件
  • 该方法应替换现有文件(可能
    • 检查现有文件是否被替换

这些只是一些想法。不要提出任何可能的要求,也不要测试太多,记住要用这个方法做什么。如果它是私有的或者只在你自己的代码中使用,你可以缩小范围,但是如果你提供一个公共API,那么你必须确保任何输入都有一个定义的结果(这可能是一个错误消息)。在

你可以信赖shutil.copy2号文件正确复制内容。您只需要测试您的代码。在本例中,如果目录不存在,它会创建这些目录,并吞并IOErrors。在

别忘了打扫卫生。;)

相关问题 更多 >

    热门问题