栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何为Python单元测试提供标准输入,文件和环境变量输入?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何为Python单元测试提供标准输入,文件和环境变量输入?

您所描述的所有三种情况都需要专门解决,以确保在设计中使用松散耦合。

您是否 真的 需要对Python的

raw_input
方法进行单元测试?该
open
方法?
os.environ.get
?没有。

您需要设置您的设计,以便您可以替代其他方法来检索该输入。然后,在单元测试期间,您将抛出实际上并没有调用

raw_input
或的某种类型的存根
open

例如,您的常规代码可能类似于:

import osdef say_hello(input_func):    name = input_func()    return "Hello " + namedef prompt_for_name():    return raw_input("What is your name? ")print say_hello(prompt_for_name)# Normally would pass in methods, but lambdas can be used for brevityprint say_hello(lambda: open("a.txt").readline())print say_hello(lambda: os.environ.get("USER"))

会话看起来像:

请问你贵姓大名?有人你好您好[部分文字]你好标记

然后您的测试将像:

def test_say_hello():    output = say_hello(lambda: "test")    assert(output == "Hello test")

请记住,您不必测试一种语言的IO功能(除非您是设计该语言的人,这完全是另一回事)。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/574764.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号