写点什么

软件测试 | 编写单元测试用例

  • 2023-05-16
    北京
  • 本文字数:1349 字

    阅读完需:约 4 分钟

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

```Author:虫师Date:2016/12/12Describe:实现简单计算器:+、-、*、/、```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 unittestfrom 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 秒。

搜索微信公众号:TestingStudio 霍格沃兹的干货都很硬核

用户头像

社区:ceshiren.com 微信:ceshiren2023 2022-08-29 加入

微信公众号:霍格沃兹测试开发 提供性能测试、自动化测试、测试开发等资料、实事更新一线互联网大厂测试岗位内推需求,共享测试行业动态及资讯,更可零距离接触众多业内大佬

评论

发布
暂无评论
软件测试 | 编写单元测试用例_测试_测吧(北京)科技有限公司_InfoQ写作社区