HOMEWORD2
开发工具和语言选择
语言 :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的更多相关文章
- 记录一次错误处理 (xml序列化和反序列化相关)
XML序列化后,反序列化时出现错误 报错现象 System.InvalidOperationException: XML 文档(40, 11)中有错误. ---> System.Xml.XmlE ...
随机推荐
- 电梯问题——致敬ACM
The Fair Nut and Elevator time limit per test 1 second memory limit per test 256 megabytes inp ...
- .net正则匹配
char[] weixin = txtweixinhao.Text.Trim().ToCharArray(); for (int i = 0; i < weixin.Length; i++) i ...
- ava、Python和PHP三者的区别
Java.Python和PHP三者的区别 2017年07月15日 22:09:21 书生_AABB 阅读数:18994 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blo ...
- 如何使用ESP8266、ESP8285做一个WiFi中继(WiFi信号放大器)
准备工作 准备一个深圳四博智联科技有限公司的ESP-F 模组.或者四博智联科技的NODEMCU 当我们拿到ESP-F模块后,可以按照以下接线进行测试: 即 VCC.EN 接 3.3v.GPIO15 G ...
- django 模板 (ああああああああ!かぴ)
一 常用 1. {{ 不存在 | default : "xx" }} 2. {{ name | length }} 3. {{ xx | slice "1:-1" ...
- java基础知识—继承
1.不能被继承的父类成员: private成员.子类与父类不在同包,使用默认访问权限的成员.构造方法. 2.访问修饰符: 访问修饰符 本类 同包 子类 其它 ...
- shell脚本学习总结(不断更新中)
前言:自从大学毕业参加工作以来,接触的开发工作都是在服务端完成,于是接触了比较多的Linux当做开发机使用,或多或少有一些重复性的工作,于是开始琢磨学习一些shell脚本的知识,以便处理这些繁琐的事情 ...
- python模块之_正则 re_configparser_logging_hashlib
正则表达式的内容放在最下面了 configparser 模块: #!/usr/bin/env python # coding:utf-8 import configparser # 专门用于操作配置文 ...
- mysql 的存储过程_多字段
mysql 的存储过程 一.准备工作 新建一个表 /*Navicat MySQL Data Transfer Source Server : localhost_3306Source Server V ...
- java面向对象编程(八)--抽象类、接口
1.抽象类 1.1抽象类概念 当父类的一些方法不能确定时,可以用abstract关键字来修饰该方法[抽象方法],用abstract来修饰该类[抽象类]. //抽象类的必要性[Demo124.java] ...