博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
单元测试
阅读量:5218 次
发布时间:2019-06-14

本文共 1721 字,大约阅读时间需要 5 分钟。

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

# 类名继承objectclass 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.TestCaseclass 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 Countimport unittestclass 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)

 执行结果:

 

转载于:https://www.cnblogs.com/wjlv/p/10603222.html

你可能感兴趣的文章
java的byte[]与String相互转换
查看>>
layui父页面执行子页面方法
查看>>
如何破解域管理员密码
查看>>
Windows Server 2008 R2忘记管理员密码后的解决方法
查看>>
IE11兼容IE8的设置
查看>>
windows server 2008 R2 怎么集成USB3.0驱动
查看>>
Foxmail:导入联系人
查看>>
JavaScript AJAX原生写法
查看>>
vue:axios二次封装,接口统一存放
查看>>
Js三大特性--封装、继承以及多态
查看>>
2019年8月2日07:51:10 马上要撤
查看>>
vue中router与route的区别
查看>>
js 时间对象方法
查看>>
网络请求返回HTTP状态码(404,400,500)
查看>>
Spring的JdbcTemplate、NamedParameterJdbcTemplate、SimpleJdbcTemplate
查看>>
Mac下使用crontab来实现定时任务
查看>>
303. Range Sum Query - Immutable
查看>>
图片加载失败显示默认图片占位符
查看>>
2018 ZJCPC
查看>>
【★】浅谈计算机与随机数
查看>>