• python unittest 测试笔记(一)


    测试最基本的原理就是比较预期结果是否与实际执行结果相同,如果相同则测试成功,否则测试失败。

    python 单元测试官方文档:
    [Python: 2.7] (https://docs.python.org/2/library/unittest.html)
    1.用import语句引入unittest模块

    coding=utf-8
    import json   #导入json模块
    import unittest #导入unittest模块
    import os
    from nose.tools import *
    from tests import helper
    from youcart import create_app, db 
    from youcart.models import ShipmentState, Shipment, ShipmentService  #导入测试类ShipmentService模块
    

    2.定义unittest.TestCase,让所有执行测试的类都继承于TestCase类,可以将TestCase看成是对特定类进行测试的方法的集合。

    class ShipmentServiceTest(unittest.TestCase):
    

    3.在setUp()方法中进行测试前的初始化工作(在每个测试用例前后做一些辅助工作),并在tearDown()方法中执行测试后的清除工作,setUp()和tearDown()都是TestCase类中定义的方法。

        def setUp(self):
        self.app = create_app('testing')
        self.app_crx = self.app.app_context()
        self.app_crx.push()
        self.client = self.app.test_client()
    
        db.drop_all()
        db.create_all()
    
        user = generate_user(self.app)
        login(self, user.email, user.password)
        self.user = user
    
        from data import seeds
        seeds.all_(self.app)
    
        def tearDown(self):
        self.app_crx.pop()
    

    4.定义测试用例,名字以test开头(一个测试用例应该只测试一个方面,测试目的和测试内容应该明确。主要是调用assertEqual、assert_greater等断言方法判断程序执行结果和预期值是否相符。)

        def test_should_find_shipment_service(self):
        # 验证物流存在
        with open('./mocks/shipment-services.json', 'r') as shipments: #获取准备好的物流信息
        # python open方法
            data = json.load(shipments)
        self.assertIsNotNone(data)
        #判定 data不为空
        actual = ShipmentService.query.get(random.randint(1, 5))
        
        def _assert_shipment_service(expected):
            self.assertEqual(actual, expected)
        self.assertIsNotNone(actual)
        [_assert_shipment_service(actual) for actual in data]
        # 通过for 循环遍历出data的值
        
        assert_greater(actual.get('id'), 0)
        assert_greater(actual.get('external_id'), 0)
        assert_greater(actual.get('name'), 0)
        #判定 物流存在
    

    5.调用unittest.main()启动测试。(如果测试未通过,会输出相应的错误提示,如果测试全部通过则不显示任何东西)

  • 相关阅读:
    2.9数据-paddlepaddle数据集wmt16
    2.8数据-paddlepaddle数据集uci_housing
    2.6数据-paddlepaddle数据集movielens
    2.5数据-paddlepaddle数据集imikolov
    2.4数据-paddlepaddle数据集imdb
    2.3数据-paddlepaddle数据集Conll05
    在android程序中怎么执行ifconfig命令来修改android 的ip地址,
    VMware 11安装Mac OS X 10.10 及安装Mac Vmware Tools.
    xcode7 如何真机测试
    海子
  • 原文地址:https://www.cnblogs.com/bevis-blog/p/5806950.html
Copyright © 2020-2023  润新知