2024-09-21 03:18:22 发布
网友
我对软件测试比较陌生。我想知道如何用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
我应该如何测试上述功能?我应该断言什么(目录、文件内容、异常)?在
我想,您可以从test_shutil本身得到一些线索,看看它是如何测试复制功能的。也就是说,它正在移动文件并使用另一个模块测试它是否存在。标准行为的差异shutil.复制如果目的地不存在,则在处理该目标时。在shutil.copy2号文件,如果目标不存在,则会创建一个从源移动的文件,在您的情况下,它不是文件,但会创建一个目标目录,然后您将源文件移动到该目录中。因此,在那里编写测试目的地不存在,并确保在您的包装器运行后,目标仍然是一个目录,并且它包含shutil移动的文件。在
想想你对你的方法提出的要求,比如:
null
这些只是一些想法。不要提出任何可能的要求,也不要测试太多,记住要用这个方法做什么。如果它是私有的或者只在你自己的代码中使用,你可以缩小范围,但是如果你提供一个公共API,那么你必须确保任何输入都有一个定义的结果(这可能是一个错误消息)。在
你可以信赖shutil.copy2号文件正确复制内容。您只需要测试您的代码。在本例中,如果目录不存在,它会创建这些目录,并吞并IOErrors。在
别忘了打扫卫生。;)
我想,您可以从test_shutil本身得到一些线索,看看它是如何测试复制功能的。也就是说,它正在移动文件并使用另一个模块测试它是否存在。标准行为的差异shutil.复制如果目的地不存在,则在处理该目标时。在shutil.copy2号文件,如果目标不存在,则会创建一个从源移动的文件,在您的情况下,它不是文件,但会创建一个目标目录,然后您将源文件移动到该目录中。因此,在那里编写测试目的地不存在,并确保在您的包装器运行后,目标仍然是一个目录,并且它包含shutil移动的文件。在
想想你对你的方法提出的要求,比如:
null
或目录的非法字符),则该方法应报告错误这些只是一些想法。不要提出任何可能的要求,也不要测试太多,记住要用这个方法做什么。如果它是私有的或者只在你自己的代码中使用,你可以缩小范围,但是如果你提供一个公共API,那么你必须确保任何输入都有一个定义的结果(这可能是一个错误消息)。在
你可以信赖shutil.copy2号文件正确复制内容。您只需要测试您的代码。在本例中,如果目录不存在,它会创建这些目录,并吞并IOErrors。在
别忘了打扫卫生。;)
相关问题 更多 >
编程相关推荐