首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >测试os方法

测试os方法
EN

Stack Overflow用户
提问于 2016-06-27 14:53:05
回答 2查看 137关注 0票数 1

如何测试python中提供的os模块方法。例如,如何测试os.mkdir的使用

代码语言:javascript
复制
def create_folder(self):
    os.mkdir("/parentFolder/newFolder")

什么可以用来测试这个方法?

此方法将具有测试用例,如

  • 验证文件夹是否已创建
  • 创建文件夹的权限不足
  • 创建文件夹的空间不足
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-06-27 15:17:07

当单元测试create_folder时,您不测试os.mkdir。这有两个原因:

  1. 它是外部库的一部分(在本例中是标准库,但对于第三方库也是如此),因此应该由该库的测试套件覆盖;
  2. 即使它是您代码库的一部分,它也是一个与正在测试的单元不同的单元。

此外,值得注意的是,正如user2393256's answer所演示的那样,您的测试可能会使用来自同一个外部库的其他功能--如果测试失败,您认为os.mkdir没有工作还是os.path.isdir没有工作?

从测试create_folder的角度来看,真正重要的是它与该函数的正确交互。我将模拟出os.mkdir (例如使用unittest.mock),并检查是否正在使用适当的路径调用它。您还可以更改模拟的返回值和副作用,允许您模拟权限不足或空间不足等问题,并测试应用程序对此的响应,而不必以某种方式真正设置该环境。当测试调用create_folder的其他功能单元时,我会完全模拟出create_folder,因为它是一个经过测试和信任的单元。

除了单元测试之外,您还需要进行一个级别的集成测试,以确保应用程序的所有部分都能正确地协同工作。此时,您将测试整个功能,例如,您可以保存一个文件,然后再加载它,而不是像“文件夹创建了吗?”这样的细节。

最后,特别是对于标准库功能,您必须对语言本身进行一定程度的信任(即使不是直接测试,至少已经有数千个程序使用了此功能!)还有工作。

票数 2
EN

Stack Overflow用户

发布于 2016-06-27 14:59:46

若要检查是否创建了目录,可以使用

代码语言:javascript
复制
os.path.isdir()

至于许可:有一个蟒蛇成语,上面写着

请求宽恕比请求许可容易得多

在这种情况下,我将尝试创建文件夹并捕获可能引发的异常。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38057117

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档