zoukankan      html  css  js  c++  java
  • Python + selenium之组织unittest单元测试用例

    当增加被测功能和相应的测试用例之后unittest单元测试框架如何扩展和组织新增的测试用例的。

     1 # coding =utf-8
     2 # calculator
     3 
     4 class Count ():
     5     def __init__(self, a, b):
     6         self.a = int (a)
     7         self.b = int (b)
     8 
     9     def add(self):
    10         return self.a + self.b
    11 
    12     def sub(self):
    13         return self.a - self.b
     1 import unittest
     2 from calculator import Count
     3 
     4 
     5 class TestAdd (unittest.TestCase):
     6     def setUp(self):
     7         print("加法测试开始")
     8 
     9     def test_add(self):
    10         j = Count(2, 3)
    11         self.assertEqual (j.add (), 4, msg='加法不行等')
    12 
    13     def test_add2(self):
    14         j = Count(2, 4)
    15         self.assertEqual (j.add (), 5, msg='加法不行等')
    16 
    17     def tearDown(self):
    18         print("加法测试结束")
    19 
    20 
    21 class TestSub (unittest.TestCase):
    22     def setup(self):
    23         print("减法测试开始")
    24 
    25     def test_sub(self):
    26         j = Count(10, 3)
    27         self.assertEqual (j.sub (), 18, msg='键法不行等')
    28 
    29     def test_sub2(self):
    30         j = Count(10, 2)
    31         self.assertEqual (j.sub (), 18, msg='键法不行等')
    32 
    33     def tearDown(self):
    34         print("减法测试结束")
    35 
    36 
    37 if __name__ == '__main__':
    38     suite = unittest.TestSuite ()
    39     suite.addTest (TestAdd ('test_add'))
    40     suite.addTest (TestAdd ('test_add2'))
    41     suite.addTest (TestSub ('test_sub'))
    42     suite.addTest (TestSub ('test_sub2'))
    43     run = unittest.TextTestRunner ()
    44     run.run (suite)

     运行的结果如下:

    上面中创建了TestAdd()和TestSub()两个类,分别测试calculator.py文件中的add()和sub()两个功能。通过TestSuite类的addTest()方法把不同测试类中的测试方法组装到测试套件中。

    通过。

    从测试结果可以看出,setUp()和tearDown()方法分别作用于每个测试用例的开始和结束。如果每个类中的setUp和tearDown()所做的事情是一样的,就可以将其封装再一个测试类中。

     1 import unittest
     2 from calculator import Count
     3 
     4 
     5 class MyTest (unittest.TestCase):
     6     def setUp(self):
     7         print("test case start")
     8 
     9     def tearDown(self):
    10         print("test case end")
    11 
    12 
    13 class TestAdd (MyTest):
    14     def test_add(self):
    15         j = Count (2, 3)
    16         self.assertEqual (j.add (), 5, msg='加法不行等')
    17 
    18     def test_add2(self):
    19         j = Count (2, 4)
    20         self.assertEqual (j.add (), 6, msg='加法不行等')
    21 
    22 
    23 class TestSub (MyTest):
    24     def test_sub(self):
    25         j = Count (10, 3)
    26         self.assertEqual (j.sub (), 7, msg='键法不行等')
    27         
    28 
    29     def test_sub2(self):
    30         j = Count (10, 2)
    31         self.assertEqual (j.sub (), 8, msg='键法不行等')
    32 
    33 
    34 if __name__ == '__main__':
    35     suite = unittest.TestSuite ()
    36     suite.addTest (TestAdd ('test_add'))
    37     suite.addTest (TestAdd ('test_add2'))
    38     suite.addTest (TestSub ('test_sub'))
    39     suite.addTest (TestSub ('test_sub2'))
    40     run = unittest.TextTestRunner ()
    41     run.run (suite)
    42     # unittest.main()

    创建MyTest()类的好处显而易见,对于测试类和测试方法来说,应将注意力放在具体用例的编写商,无需关心SetUp()和TearDown()所做的事情。前提条件是SetUp()和TearDown()所做的事情是每个用例都需要的。

  • 相关阅读:
    html与app交互
    算法:算法的时间与空间复杂度
    php加解密函数集合
    redis主要用法
    【原创】RabbitMQ教程:php实现
    安装RabbitMq
    mysql复制表和字段
    vim文本操作
    JAVA学习(常量)
    JAVA学习(变量)
  • 原文地址:https://www.cnblogs.com/fengyiru6369/p/7575101.html
Copyright © 2011-2022 走看看