这几天看了一下python的测试,基于函数方法和基于类的测试,主要使用的模块是unittest模块,为特定的方法和类,建立测试模块,测试函数功能是否满足预期。下面是模仿书里面的一个例子。

  City.py模块

def city(city_name,country_name):
full_city_name = city_name +','+country_name
return full_city_name

  为这个模块创建一个测试模块,主要是为了测试这个city方法是否能够满足预期。

  assert模块

import unittest
from City import city
class Testcity(unittest.TestCase): def test_city(self):
city_name = 'Santiago'
country_name = 'Chile'
full_city_name = city(city_name,country_name)
print(full_city_name)
self.assertEqual(full_city_name,'Santiago,Chile')
# self.assertEqual(4+5,9) if __name__ == '__main__':
unittest.main()

  主要就是导入unittest模块,然后定义一个测试类,继承unittest.TestCase,在测试类中定义测试方法,针对于被测试方法,编写测试用例,然后assert断言,查看输入,如果在运行过程中出现报错,则证明模块功能有问题,需要修改功能。如果测试没有问题,则证明测试能够通过,功能模块没有问题。

  

  这就是测试成功的结果,如果测试部成果,如下图所示。

  

  会抛出一个异常,在断言的地方。然后可以根据这个异常,来进行排错。

  

  一般编写的代码,都需要经过测试之后,才能正常使用。避免复杂的人工测试,assert断言能够做到自动化,一旦有报错,则直接能判断功能是否正常。

  下面是一个对类的测试断言,写在同一个模块中,只是为了说明测试方法。

class Employee():
def __init__(self,first_name,last_name,salary):
self.first_name = first_name
self.last_name = last_name
self.salary = int(salary) def give_raise(self,raise_default = 5000):
self.salary += raise_default class TestClassEmployee(unittest.TestCase):
def setUp(self):
self.username = Employee('John','Smith','') def test_give_default_raise(self):
self.username.give_raise()
new_raise = 65000
self.assertEqual(new_raise,self.username.salary) def test_give_custom_raise(self):
self.username.give_raise(7000)
new_raise = 67000
self.assertEqual(new_raise, self.username.salary)
if __name__ == '__main__':
unittest.main()

  定义了一个员工类,需要知道员工的名字和薪水,同时定义了一个涨工资方法,默认值是5000,在定义测试类的时候,首先定义了个测试对象,通过setUp方法,生产测试对象,后续的测试方法中,可以通过该测试对象来做测试。定义了两个测试方法,默认值和自定义值。测试结果如下:

  

python测试断言的更多相关文章

  1. 收藏清单: python测试框架最全资源汇总

    xUnit frameworks 单元测试框架 frameworks 框架 unittest - python自带的单元测试库,开箱即用 unittest2 - 加强版的单元测试框架,适用于Pytho ...

  2. Python assert 断言函数

    http://blog.csdn.net/hunyxv/article/details/52737339 使用assert断言是学习python一个非常好的习惯,python assert 断言句语格 ...

  3. 转 python测试框架最全资源汇总

    转自: http://www.testclass.net/list/python_list_1/ xUnit frameworks(单元测试框架) frameworks 框架 unittest - p ...

  4. python assert断言函数

    python assert断言是声明布尔值必须为真的判定,如果发生异常就说明表达式为假. 可以理解assert断言语句为raise-if-not,用来测试表示式,其返回值为假,就会触发异常. self ...

  5. python测试框架&&数据生成&&工具最全资源汇总

    xUnit frameworks 单元测试框架frameworks 框架unittest - python自带的单元测试库,开箱即用unittest2 - 加强版的单元测试框架,适用于Python 2 ...

  6. Python测试 ——开发工具库

    Web UI测试自动化 splinter - web UI测试工具,基于selnium封装. selenium - web UI自动化测试. mechanize- Python中有状态的程序化Web浏 ...

  7. python assert 断言语句的作用

    python assert 断言语句的作用 assert语句的应用场景 使用assert语句是一个很好的习惯. 我们在编写代码的时候, 不知道程序会在什么时候崩溃, 与其让它在深度运行时崩溃, 不如预 ...

  8. python assert 断言详细用法格式

    使用assert断言是学习python一个非常好的习惯,python assert 断言句语格式及用法很简单.在没完善一个程序之前,我们不知道程序在哪里会出错,与其让它在运行最崩溃,不如在出现错误条件 ...

  9. 全功能Python测试框架:pytest

    python通用测试框架大多数人用的是unittest+HTMLTestRunner,这段时间看到了pytest文档,发现这个框架和丰富的plugins很好用,所以来学习下pytest.   imag ...

随机推荐

  1. 用于Azure功能的Visual Studio 2017工具

    今天我们很高兴地宣布发布第一个预览的Visual Studio 2017工具的Azure功能.这个预览介绍了一些令人兴奋的变化,我们以前的版本.此外,除了支持Visual Studio 2017之外, ...

  2. 因为网络安全的重要性打算学习linux

    互联网的普及,在给人们带来巨大便利的同时,也让人们感受到网络安全隐患带给人们的不安与威胁.尤其是随着计算机技术和网络技术应用范围的不断扩充,网络安全方面存在的漏洞也越来越多,在这种情况下,如何提高网络 ...

  3. js弹框的3种方法

    js的三种弹框的方法 1.第一种 :  alert("1"); 2.第二种 :  window.open("Tests2.html"); var r = con ...

  4. 牛客寒假算法训练1 D 欧拉(容斥)

    1 #include<bits/stdc++.h> using namespace std; ; typedef long long ll; int p[maxn],a[maxn]; ll ...

  5. E - Just a Hook HDU - 1698 线段树区间修改区间和模版题

    题意  给出一段初始化全为1的区间  后面可以一段一段更改成 1 或 2 或3 问最后整段区间的和是多少 思路:标准线段树区间和模版题 #include<cstdio> #include& ...

  6. 【BZOJ1999】【NOIP2007】树网的核 单调队列优化DP

    题目描述 题目很长,大家自己去看吧. bzoj vijos 原题\(n\leq 300\) 加强版\(n\leq 500000\) 题解 这种东西当然要猜结论的啦,否则会比较麻烦. 结论1:如果有很多 ...

  7. 「BZOJ1691」[Usaco2007 Dec] 挑剔的美食家 (Treap)

    Description 与很多奶牛一样,Farmer John那群养尊处优的奶牛们对食物越来越挑剔,随便拿堆草就能打发她们午饭的日子自然是一去不返了.现在,Farmer John不得不去牧草专供商那里 ...

  8. 概念数据模型CDM基础

    概念数据模型CDM 概念数据模型是设计数据库不可或缺的一步,是整个数据库设计的关键,CDM的主要作用如下: 1)能够真实地模拟真实世界,是需求分析人员和数据库设计人员沟通的桥梁.2)将系统需求分析得到 ...

  9. 【模板】cdq分治代替树状数组(单点修改,区间查询)

    #include <cstdio> #include <cstdlib> #include <cstring> #include <cmath> #in ...

  10. Hdoj 2018.母牛的故事 题解

    Problem Description 有一头母牛,它每年年初生一头小母牛.每头小母牛从第四个年头开始,每年年初也生一头小母牛.请编程实现在第n年的时候,共有多少头母牛? Input 输入数据由多个测 ...