Python中的单元测试,步步惊心续集之怎样狸猫换太子?

跟随内心 2013-11-23 04:27:50
标题有点儿噱头,问题说白了就是下面的场景该怎么实现单元测试?
#人物类——若曦
class RuoXi:
'''若曦生了一个太子'''
def __init__(self):
pass
def tai_zi(self):
print "太子"
return "太子"

#场景类——皇宫
class HuangGong
'''皇宫里的生活经常会上演步步惊心的大戏'''
def __init__(self):
pass
def bu_bu_jing_xin(self): #步步惊心
print "《步步惊心》Action"
xixi = RuoXi()
child = xixi.tai_zi()
...


现在我们要对bu_bu_jing_xin()这场戏单元测试一下?但是实际上我们的太子还没生出来呢?肿么办?那么我们必须要Mock一个狸猫的东西来代替太子。
可惜我们没法进入皇宫呢?这又肿么办?
#单元测试类
class HuangGongTest(MockTestCase):
def setUp(self):
print '各演员就位...'
print '各导演就位...'
print 'Action...'
pass

def tearDown(self):
pass

def test_bu_bu_jing_xin(self):
pass #靠,演员,导演都齐了,这缺了太子啥事也干不成啊,这样耗下去损失可够大的呀....

请看官们看看这tai_zi()的问题怎么解决?

以上文字表述仅仅是想激发大家兴趣,让大家能够更容易思考,在求知的道路上也希望能给大家增加一点儿乐趣;如果不喜,可以看下面更严谨的说法:
我们要对HuangGong类中的bu_bu_jing_xin()这个方法进行单元测试,但是RuoXi对象是在此函数中生成的,而RuoXi中的tai_zi()这个函数是一种妨碍测试的资源,比如,网络请求之类的,数据库的内容之类,但是这样怎么测试呢?


三思而放水!!!
...全文
141 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧