import unittest
from Widget import Widget
# 执行测试的类
# 让所有执行测试的类都继承于 TestCase 类,可以将 TestCase 看成是对特定类进行测试的方法的集合
class WidgetTestCase(unittest.TestCase):
# setUp()方法中进行测试前的初始化工作
def setUp(self):
self.widget = Widget()
# 测试 getSize()方法的测试用例
def testSize(self):
# assertEqual()也是 TestCase 类中定义的方法。对 Widget 类中 getSize()方法的返回值和预期值进行比较
self.assertEqual(self.widget.getSize(), (40, 40))
# 测试 resize()方法的测试用例
def testResize(self):
self.widget.resize(100, 100)
self.assertEqual(self.widget.getSize(), (100, 100))
# tearDown()方法中执行测试后的清除工作,setUp()和 tearDown()都是 TestCase 类中定义的方法
def tearDown(self):
self.widget.dispose()
self.widget = None
# 测试
if __name__ == "__main__":
# TestSuite 看成是包含所有TestCase 类测试用例的一个容器
suite = unittest.TestSuite()
suite.addTest(WidgetTestCase("testSize"))
suite.addTest(WidgetTestCase("testResize"))
# 执行测试
# TestRunner 类作为测试用例的基本执行环境,来驱动整个单元测试过程,
# 单元测试时一般不直接使用 TestRunner 类,而是使用其子类 TextTestRunner 来完成测试,
# 并将测试结果以文本方式显示出来:
runner = unittest.TextTestRunner()
runner.run(suite)