python测试断言

  这几天看了一下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‘,‘60000‘)

    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方法,生产测试对象,后续的测试方法中,可以通过该测试对象来做测试。定义了两个测试方法,默认值和自定义值。测试结果如下:

  

原文地址:https://www.cnblogs.com/bobo137950263/p/9350268.html

时间: 2024-10-16 20:34:08

python测试断言的相关文章

python assert断言函数

python assert断言是声明布尔值必须为真的判定,如果发生异常就说明表达式为假.可以理解assert断言语句为raise-if-not,用来测试表示式,其返回值为假,就会触发异常. self.assertEqual(a,b,msg=msg)   #判断a与.b是否一致,msg类似备注,可以为空 self.assertNotEqual(a,b,msg=msg)  #判断a与b是否不一致 self.assertTrue(a,msg=none)    #判断a是否为True self.asse

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

转自: http://www.testclass.net/list/python_list_1/ xUnit frameworks(单元测试框架) frameworks 框架 unittest - python自带的单元测试库,开箱即用 unittest2 - 加强版的单元测试框架,适用于Python 2.7以及后续版本 pytest - 成熟且功能强大的单元测试框架 plugincompat - pytest的执行及兼容性插件 nosetests - 让python测试更容易一点 slash 

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

xUnit frameworks 单元测试框架frameworks 框架unittest - python自带的单元测试库,开箱即用unittest2 - 加强版的单元测试框架,适用于Python 2.7以及后续版本pytest - 成熟且功能强大的单元测试框架plugincompat - pytest的执行及兼容性插件nosetests - 让python测试更容易一点slash - python实现的单元测试框架 extensions 扩展proboscis - 仿TestNG扩展了unit

Python测试框架之unittest和pytest

目前搜狗商城接口测试框架用的是unittest+HTMLTestRunner,case数有1097条,目前运行一次自动化测试,时长约为30分钟,期望控制在10分钟或者更短的时间内.近期打算重新优化框架,着重解决运行效率低的问题.最近调研了一下另一种主流测试框架Pytest,Pytest是一个非常成熟的全功能的Python测试框架,本文主要对比了Unittest和Pytest这两种较为流行的Python测试框架. 一.Unittest Unittest是Python标准库中自带的单元测试框架,Un

Junit 测试断言说明

Assert.assertEquals("发生错误时报告消息","预期值","生产值"); Assert.assertEquals("精确两位小数点",3.33,10.0/3.0,0.01); Assert.assertNotNull("");//验证是否为非空 Assert.assertNull(""); //验证是否为空 Assert.assertSame("",

三、postman测试断言设置语法

postman的基本介绍跟基本的用法,在此就不做过多赘述,主要是受限于时间,网上有很多大神总结的已经算是很详尽了,给出链接并感谢大神的辛苦与奉献: postman基本用法:http://www.jianshu.com/p/13c8017bb5c8 这个链接相对来讲更全面系统,在页面下方有不同知识点的链接,直接点击链接学习系统的postman相关知识: 我这边想说的是关于断言语法的东西,Postman测试沙箱是一个JavaScript执行环境,可以通过JS脚本来编写pre-request Scri

关于python测试webservice接口的视频分享

现在大公司非常流行用python做产品的测试框架,还有对于一些快速原型产品的开发也好,很好地支持OO编程,代码易读.Python的更新挺快的,尤其是第三方库. 对于测试人员,代码基础薄弱,用python语言容易上手.今天就python测试webservice接口视频分享给大家 视频地址: http://pan.baidu.com/s/1kT5s3iB

使用python测试sphinx(coreseek)做全文索引

coreseek是一个基础sphinx的中文索引工具,我今天写一下关于使用python做测试的方式. coreseek安装,连接mysql的配置此处不赘述,很多人写过这方面的博客,单纯讲python连接sphinx.当然我们先启动sphinx进程,./searched python要连接sphinx肯定是需要第三方库的,你可以去pypi找,当然sphinx已经告诉我们了,我们去/home/lpj/soft/coreseek-3.2.14/csft-3.2.14/api (我下载的coreseek

.NET测试断言工具Shouldly

.NET测试断言工具Shouldly .NET测试 Shouldly在GitHub的开源地址:https://github.com/shouldly/shouldly Shouldly的官方文档:http://docs.shouldly-lib.net/ Shouldly断言框架提供了相等.迭代.动态变量.字符串.字典.任务/异步,以及异常等多方面的支持. Equality 相等 其中之一 ShouldBeOneOf ShouldNotBeOneOf 大于 ShouldBeGreaterThan