码迷,mamicode.com
首页 > 编程语言 > 详细

python unittest单元测试框架-1

时间:2018-11-26 23:10:13      阅读:287      评论:0      收藏:0      [点我收藏+]

标签:cal   img   一起   com   组织   框架   pre   assert   test   

Test Case、Test Suite、Test Runner、Test Fixture

  • Test Case:单个测试用例
  • Test Suite:测试组合。可以把多个测试用例集合在一起执行。
  • Test Runner:通过Test Runner的run()方法来执行test suite/test case,可以使用图形界面、文本界面,或返回一个特殊的值来表示测试执行的结果。
  • Test Fixture:测试用例环境的搭建和销毁。如果测试用例中需要访问数据库,可以在setUp中建立数据库连接,在tearDown中清除数据库产生的数据,并断开连接

单元测试

calculator.py

class Count:
    def __init__(self,a,b):
        self.a = a
        self.b = b
    def add(self):
        return self.a + self.b
    def sub(self):
        return self.a - self.b

test.py

from book.calculator import  Count
import unittest
class TestCount(unittest.TestCase):
    def setUp(self):
        print("test start")
    def test_add(self):
        j = Count(2,3)
        self.assertEqual(j.add(),5)
    def test_add2(self):
        j = Count(54,49)
        self.assertEqual(j.add(),103)
    def tearDown(self):
        print("test end")
if __name__=="__main__":
    #__name__是内置属性,使用__main__就是直接使用。
    #main()方法可以将一个单元测试模块变成可以直接运行的测试脚本,执行所有以test命令开头的方法
    unittest.main()

技术分享图片

使用Test Suite组织测试用例,Test Runner运行

test.py

from calculator import  Count
import unittest
class TestCount(unittest.TestCase):
    def setUp(self):
        print("test start")
    def test_add(self):
        j = Count(2,3)
        self.assertEqual(j.add(),5)
        print("test_add执行完毕")
    def test_add2(self):
        j = Count(54,49)
        self.assertEqual(j.add(),103)
        print("test_add2执行完毕")
    def tearDown(self):
        print("test end")
if __name__=="__main__":
    #构造测试集
    suite = unittest.TestSuite()
    suite.addTest(TestCount("test_add2"))
    #执行测试
    runner = unittest.TextTestRunner()
    runner.run(suite)

技术分享图片

断言方法

python unittest单元测试框架-1

标签:cal   img   一起   com   组织   框架   pre   assert   test   

原文地址:https://www.cnblogs.com/csj2018/p/10023320.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!