zoukankan      html  css  js  c++  java
  • 单元测试

     首先写了一个计算类(只写了加方法):

    # 类名继承object
    class Count(object):
        # 初始化变量(属性)值,此时在声明对象的时候需要传入初始值a和b
        def __init__(self, a, b):
            self.a = int(a)
            self.b = int(b)
    
        # 定义一个加方法,实现返回a+b
        def add(self):
            return self.a + self.b

    然后写一个简单的加法计算单元测试:

    # 从calculate.py中导入Count类
    from calculate import Count
    # 导入unittest单元测试类
    import unittest
    
    # 创建测试类u_test继承至unittest.TestCase
    class u_test(unittest.TestCase):
        # setUp可以理解为测试初始化,一般用于测试前的准备工作
        def setUp(self):
            print('Test begin ')
    
        # 构造测试方法test_add
        def test_add(self):
            # 声明一个对象j,传入属性值4,3
            j = Count(4, 3)
    
            # 调用unittest.TestCase类的数值判断方法assertEqual
            self.assertEqual(j.add(), 9)
    
        # setUp可以理解为测试后处理,一般用于测试后的处理工作
        def tearDown(self):
            print('Test complete')
    
    ''' .py文件可导入使用,也可以单独执行。加入此判断的目的是为了让解释器知道我执行的是utest.py'''
    if __name__ == '__main__':
        unittest.main()

    下附文件目录:

                                 

    传入3,4的运行结果:

     传入4,5的测试结果:

    上述代码只是实现了一个case的执行,并不能执行多个case。所以引入TestSuite,通过unittest.TestSuite类的addCase()方法增加测试用例,通过unittest下的TextTestRunner类的run()方法来执行suite。

    下面尝试执行有选择的执行Case:

    calculate.py不做更改;unitest.py最后的调用作更改:

    from calculate import Count
    import unittest
    
    class u_test(unittest.TestCase):
        def setUp(self):
            print('Test begin ')
    
        def test_add(self):
            j = Count(4, 5)
            self.assertEqual(j.add(), 9)
    
        def test_add2(self):
            j = Count(8, 5)
            self.assertEqual(j.add(), 12)
    
        def tearDown(self):
            print('Test complete')
    
    
    if __name__ == '__main__':
        # 声明unittest.TestSuite类的对象suite
        suite = unittest.TestSuite()
        # 调用上述类的addTest方法来增加要执行的Case
        suite.addTest(u_test.test_add2())
    
        # 创建unittest.TextTestRunner类的runner对象
        runner = unittest.TextTestRunner()
        runner.run(suite)

     执行结果:

  • 相关阅读:
    zoj 3195 Design the city LCA Tarjan
    hdu 2586 How far away ? 离线LCA
    洛谷 P3379 【模板】最近公共祖先(LCA)Tarjan离线
    codeforces #446 892A Greed 892B Wrath 892C Pride 891B Gluttony
    设计模式(16)---原型模式
    设计模式(15)---享元模式
    设计模式(14)---组合模式
    设计模式(13)---外观模式
    设计模式(12)---适配器模式
    设计模式(11)---代理模式
  • 原文地址:https://www.cnblogs.com/wjlv/p/10603222.html
Copyright © 2011-2022 走看看