【发布时间】:2015-10-02 01:41:05
【问题描述】:
从两个文件test_now.py和test_later.py如下:
# test_now.py
import unittest
class CommonClass(unittest.TestCase):
def hello(self):
print "Hello there"
def bye(self):
print "Bye"
def seeYouAgain(self):
print "See You Again"
def whatsUp(self):
print "What's up?"
def testNow(self):
self.hello()
self.bye()
if __name__ == '__main__':
unittest.main()
# test_later.py
import unittest
class CommonClass(unittest.TestCase):
def hello(self):
print "Hello there"
def bye(self):
print "Bye"
def seeYouAgain(self):
print "See You Again"
def whatsUp(self):
print "What's up?"
def testLater(self):
self.hello()
self.whatsUp()
if __name__ == '__main__':
unittest.main()
我整理成三个文件如下:
# common_class.py
import unittest
class CommonClass(unittest.TestCase):
def hello(self):
print "Hello there"
def bye(self):
print "Bye"
def seeYouAgain(self):
print "See You Again"
def whatsUp(self):
print "What's up?"
# test_now.py
from common_class import *
def testNow(self)
self.hello()
self.bye()
setattr(CommonClass, 'testNow', testNow)
if __name__ == '__main__':
unittest.main()
# test_later.py
from common_class import *
def testLater(self):
self.hello()
self.whatsUp()
setattr(CommonClass, 'testLater', testLater)
if __name__ == '__main__':
unittest.main()
这种 DRY 方法有哪些顾虑?
【问题讨论】:
-
你能修正一下格式吗?
-
不幸的是,将模块级函数添加为类的方法比这要复杂一些
-
您的 TestCase 测试什么?没有什么。你为什么不try reading the documentation for unittest?
标签: python unit-testing dry