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 ... 
随机推荐
- Python-接口自动化(三)
			python基础知识(三) (三)函数 1.函数 函数的语法: def 函数名(): 函数体 a.函数的关键字是def,函数体就是你希望这个函数帮你实现什么功能,函数名命名需要遵循的原则是以小写字母分 ... 
- shell 下生成使用UUID
			#!/bin/bash psd="/proc/sys/kernel/random/uuid" echo $(cat $psd)UUID=$(cat /proc/sys/kernel ... 
- Django REST framework--序列化
			Django REST framework--序列化 基础准备工作 创建项目添加应用 (venv) lee@lee:~/PycharmProjects/Djdemo/djdemo$ python ma ... 
- 小学生四则运算JAVA
			点我,github地址 组员:黄浩格,何坤 一.项目说明 1题目:实现一个自动生成小学四则运算题目的命令行程序. 2说明: 自然数:0, 1, 2, -. • 真分数:1/2, 1/3, 2/3, 1 ... 
- flv文件解析(纯c解析代码)
			参考链接: 1. FLV科普12 FLV脚本数据解析-Metadata Tag解析 https://blog.csdn.net/cabbage2008/article/details/50500021 ... 
- 编译libcurl支持https协议
			编译与安装参考:http://www.cnblogs.com/openiris/p/3812443.html 注意事项:先下载安装完nasm和perl再打开控制台(需要将nasm安装路径添加到Path ... 
- 问题1:Oracle数据库监听启动失败(重启监听,提示The listener supports no services)
			编辑监听文件:/home/DB/oracle/11gR2/db/network/admin/listener.ora 在文件内添加静态监听实例,如下内容: SID_LIST_LISTENER =(SI ... 
- bootstrap-fileinput多图片上传
			在页面写一个input框: <input id="subGraphAddress1" name="subGraphAddress" type=" ... 
- anyalarm
			#ifndef __ALRM_H #define __ALRM_H #define MAX 1024 typedef void (*any_t)(void *s); typedef struct { ... 
- c# 连接数据库SqlHelper
			using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threa ... 
