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

如何模拟pyunit的stdin输入?

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

如何模拟pyunit的stdin输入?

简短的答案是猴子补丁

raw_input()

这是一个使用a的简单示例

lambda
,该示例丢弃提示并返回我们想要的内容。

被测系统

cat ./name_getter.py#!/usr/bin/env pythonclass NameGetter(object):    def get_name(self):        self.name = raw_input('What is your name? ')    def greet(self):        print 'Hello, ', self.name, '!'    def run(self):        self.get_name()        self.greet()if __name__ == '__main__':    ng = NameGetter()    ng.run()$ echo Derek | ./name_getter.py What is your name? Hello,  Derek !

测试用例:

$ cat ./t_name_getter.py#!/usr/bin/env pythonimport unittestimport name_getterclass TestNameGetter(unittest.TestCase):    def test_get_alice(self):        name_getter.raw_input = lambda _: 'Alice'        ng = name_getter.NameGetter()        ng.get_name()        self.assertEquals(ng.name, 'Alice')    def test_get_bob(self):        name_getter.raw_input = lambda _: 'Bob'        ng = name_getter.NameGetter()        ng.get_name()        self.assertEquals(ng.name, 'Bob')if __name__ == '__main__':    unittest.main()$ ./t_name_getter.py -vtest_get_alice (__main__.TestNameGetter) ... oktest_get_bob (__main__.TestNameGetter) ... ok----------------------------------------------------------------------Ran 2 tests in 0.000sOK


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

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

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