码迷,mamicode.com
首页 > 编程语言 > 详细

python测试断言

时间:2018-07-22 17:07:37      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:user   排错   python   san   异常   mit   模块   class   运行   

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

  技术分享图片

 

python测试断言

标签:user   排错   python   san   异常   mit   模块   class   运行   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!