软件测试 | 编写单元测试用例
  p1prOQge3cDY 2023年11月02日 36 0

开发一个简单的计算器,用于计算两个数的加、减、乘、除,功能代码如下

```
Author:虫师
Date:2016/12/12
Describe:实现简单计算器:+、-、*、/、
```
class Calculator():
  ```实现两个数的加、减、乘、除```
   def _init_(self,a,b):
      self.a = int(a)
      self.b = int(b)

    #加法
    def add(self)
        return self.a+self.b

    #减法
     def sub(self):
       return self.a-self.b
    #乘法
     def mul(self):
        return self.a * self.b
     # 除法
       def div(self):
         return self.a / self.b

使用unittest单元测试框架对Calculator类的方法进行测试。在与module.py同级的目录下创建test.py测试文件。

import unittest
from module import Calculator

class ModuleTest(unittest.TestCase):
 
   def setUp(self):
      self.cal = Calulator(8,4)

   def teraDown(self):
    pass

  def test_add(self):
     result = self.cal.add()
     self.assertEqual(result,12)

  def test_sub(self):
      result = self.cal.sub()
      self.assertEqual(result,4)

  def test_mul(self):
      result = self.cal.mul()
      self.assertEqual(result,32)

  def test_div(self):
      result = self.cal.div()
      self.assertEqual(result,2)

if _name_ == "_main_":
  #unittest.main()
  #构造测试集
  suite = unittest.TestSuite()
  suite.addTest(ModuleTest("test_add"))
  suite.addTest(ModuleTest("test_add"))
  suite.addTest(ModuleTest("test_mul"))
  suite.addTest(ModuleTest("test_div"))
  #执行测试
  runner = unittest.TextTestRunner()
  runner.run(suite)

首先从感官上来看,通过unittest单元测试框架编写测试用例更加规范和整洁。我们来分析一下unittest单元测试框架的用法。

首先,通过import导入unittest单元测试框架。创建ModuleTest类继承unittest.TestCase类。

setUp()和tearDown()两个方法在单元测试框架中较为特别,它们分别在每一个测试用例的开始和结束时执行。serUp()方法用于测试用例执行前的初始化工作,例如初始化变量、生成数据库测试数据、打开浏览器等。tearDown()方法用于测试用例执行之后的善后工作,例如清楚数据库测试数据、关闭文件、关闭浏览器等。

unittest要求测试用例(方法)必须以“test”开头。例如,test_add、test_sub等。

接下来,调用unittest.TestSuite()类的addTest()方法向测试套件中添加测试用例。可以将测试套件理解为运行测试用例的集合。

最后,通过unittest.TestTestRunner()类的run()方法运行测试套件中的测试用例。

如果想默认运行当前测试文件中的所有测试用例,则可以直接使用unittest所提供的main()方法。也就是程序中if_name_=="_main_":下面注释的第一行代码。main()方法默认查找当前文件中集成unittest.TestCase的测试类;在测试类下面匹配以“test”开头的方法,并执行它们。

执行代码如下:

> python3 test.py
.....
-------------------------------------------------------
Ran 4 tests in 0.000s

OK

从执行结果可以看到,点号“ . ”用来表示一条运行通过的用例,总共运行4条测试用例,用时0.000秒。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
p1prOQge3cDY
最新推荐 更多