如何测试python中提供的os模块方法。例如,如何测试os.mkdir的使用
def create_folder(self):
os.mkdir("/parentFolder/newFolder")什么可以用来测试这个方法?
此方法将具有测试用例,如
发布于 2016-06-27 15:17:07
当单元测试create_folder时,您不测试os.mkdir。这有两个原因:
此外,值得注意的是,正如user2393256's answer所演示的那样,您的测试可能会使用来自同一个外部库的其他功能--如果测试失败,您认为os.mkdir没有工作还是os.path.isdir没有工作?
从测试create_folder的角度来看,真正重要的是它与该函数的正确交互。我将模拟出os.mkdir (例如使用unittest.mock),并检查是否正在使用适当的路径调用它。您还可以更改模拟的返回值和副作用,允许您模拟权限不足或空间不足等问题,并测试应用程序对此的响应,而不必以某种方式真正设置该环境。当测试调用create_folder的其他功能单元时,我会完全模拟出create_folder,因为它是一个经过测试和信任的单元。
除了单元测试之外,您还需要进行一个级别的集成测试,以确保应用程序的所有部分都能正确地协同工作。此时,您将测试整个功能,例如,您可以保存一个文件,然后再加载它,而不是像“文件夹创建了吗?”这样的细节。
最后,特别是对于标准库功能,您必须对语言本身进行一定程度的信任(即使不是直接测试,至少已经有数千个程序使用了此功能!)还有工作。
发布于 2016-06-27 14:59:46
若要检查是否创建了目录,可以使用
os.path.isdir()至于许可:有一个蟒蛇成语,上面写着
请求宽恕比请求许可容易得多
在这种情况下,我将尝试创建文件夹并捕获可能引发的异常。
https://stackoverflow.com/questions/38057117
复制相似问题