开发工具和语言选择

语言 :pyhton3.6 工具 我选择的是 pycharm2019.1。由于之前已经安装好了,这里就不再贴出。

自动单元测试练习

python单元测试框架Unittest。Unittest最核心的四个概念是:test case, test suite, test runner, test fixture。下面简单介绍一下

Testcase

可以理解为一个单独的测试用例

Testsuit

就是多个测试用例集合在一起

Testloader

加载Testcase到Testsuit,返回一个Testsuit

Testfixture

对一个用例的搭建和销毁

测试函数的编写

mytest.py

class MATH:
def add(self,a,b):
return a+b
def minus(self,a,b):
return a-b
def divide(self,a,b):
return a/b

测试单元

tstunit.py

import  unittest
from mytest import *
class theTests(unittest.TestCase):
def setUp(self):
self.m = MATH() def tearDown(self):
pass def test_add(self):
result = self.m.add(10,20)
self.assertEqual(30,result)
print('+') def test_minus(self):
result = self.m.minus(20,10)
self.assertEqual(10,result)
print('-') def test_divide(self):
result = self.m.divide(9,2)
self.assertEqual(4.5,result)
print('/')
if __name__ == '__main__':
unittest.main()

运行结果

如下图



.表示测试通过 F表示不通过。我们看输出的符号顺序是 + / - 这与我们编写的测试顺序不同。如果想让输出按照我们编写的顺序来实现的话可以这样实现。

在函数名中添加数字来实现

比如之前的test_divide()函数 将其改为test_3_divide(),将test_add()改为test_2_add(),将test_minus()改为test_1_minus()

运行后,输出如下。

另一种方法就是使用Testsuit

Testsuit不仅可以按序测试多个函数,也可以按顺序执行多个测试文件

按顺序将要测试的函数添加到列表中,通过addTests方法添加到Testsuit中

运行结果如下

参考文章

[1](http://www.mamicode.com/info-detail-2366101.html)
[2](https://blog.csdn.net/huilan_same/article/details/52944782)

HOMEWORD2的更多相关文章

  1. 记录一次错误处理 (xml序列化和反序列化相关)

    XML序列化后,反序列化时出现错误 报错现象 System.InvalidOperationException: XML 文档(40, 11)中有错误. ---> System.Xml.XmlE ...

随机推荐

  1. ImportError libcublas.so.9.0

    What to do when you've installed cuda and tensorflow, but you get this error right after you import ...

  2. 构建Java开发环境(JDK)

    在我们学习Java前我们需要构建相对应的开发环境.JDK(Java Development Kit)是Java开发的必备条件. Java 的JDK是Sun公司的产品,但由于Sun公司被Oracle公司 ...

  3. 小白的首个maven web项目Step1软件安装三(8.0.15mysql及workbench安装)

    直接先开始下 MySQL 和 Workbench(mysql的可视化工具) ,注意下得是镜像版 .msi 后缀的 (mysql是纯控制面板的呈现方式,想要界面化操作可以装可视化工具,这里我装的是wor ...

  4. git 的安装与初始化

    1搭建本地git服务器: 1.1安装git 对于ubuntu系统,一般自带git,可以使用git --version 查看版本号 ,或使用apt-get install git  . centos上对 ...

  5. C++11 相关教程

    C++11 中文wiki: https://zh.wikipedia.org/zh-cn/C%2B%2B11 C++11 新特性介绍: https://www.kancloud.cn/wangshub ...

  6. Ubuntu下Caffe实现物体分类

    参考链接: ubuntu下配置Caffe:https://blog.csdn.net/a_z666666/article/details/72853346 https://www.cnblogs.co ...

  7. js获取元素属性值为空的原因和解决办法

    问题描述:js获取某元素的属性值为空 代码: <!-- css定义在head中 --> <style> #box{ width: 100px; height: 100px; b ...

  8. Intellij idea 2018的注册方式

    激活方式:License Server 第一步: 将地址 http://active.chinapyg.com/ 或者 http://idea.toocruel.net 任意一个复制到License ...

  9. jmeter测试计划元素执行顺序

    jmeter测试计划元素执行顺序 测试计划的元素是有序的,通过以下方式执行: 1–配置节点 2–前置处理器 3–定时器 4–取样器 5–后置处理器(只在有结果可用情况下执行) 6–断言(只在有结果可用 ...

  10. `TypeError: torch.mm received an invalid combination of arguments - got (torch.FloatTensor, Variable),

    `TypeError: torch.mm received an invalid combination of arguments - got (torch.FloatTensor, Variable ...