按照PyUnit中的示例,我想出了以下单元测试代码,它运行正常。
import unittest
class Board:
def __init__(self, x, y):
self.x = x; self.y = y;
def __eq__(self, other):
return self.x == other.x and self.y == other.y
class BoardTest(unittest.TestCase):
def setUp(self):
self.b10_10 = Board(10,10)
self.b10_10p = Board(10,10)
self.b10_20 = Board(10,20)
def tearDown(self):
pass
def test1(self):
self.assert_(self.b10_10 == self.b10_10p)
def test2(self):
self.assert_(not (self.b10_10 == self.b10_20))
class BoardTest2(unittest.TestCase):
def setUp(self):
self.b10_10 = Board(10,10)
self.b10_10p = Board(10,10)
self.b10_20 = Board(10,20)
def tearDown(self):
pass
def test1(self):
self.assert_(self.b10_10 == self.b10_10p)
def test2(self):
self.assert_(not (self.b10_10 == self.b10_20))
def suite():
suite1 = unittest.makeSuite(BoardTest)
suite2 = unittest.makeSuite(BoardTest2)
return unittest.TestSuite((suite1, suite2))
if __name__ == "__main__":
unittest.main()
但问题是即使我删除了
def suite():,结果也一样。换句话说,看起来夹具/套件对于PyUnit来说并没有用。
这是对的吗?
答案 0 :(得分:4)
但是,TestSuite类在许多场景中仍然很方便:
答案 1 :(得分:3)
除了Mark的回答之外,构建自己的套件()的另一个原因是,如果您正在动态构建测试。
另外,我花了一些时间来弄清楚如何让PyDev拿起套件并在图形测试运行器中运行它。诀窍是放入一个类似的方法:
def load_tests(loader, tests, pattern):
return suite()
这样的方法被选中了图形测试运行器。