zoukankan      html  css  js  c++  java
  • python单元测试

    个人在工作中用的不多。

    编写单元测试,我们需要引入Python自带的unittest模块:

    class Dict(dict):
    
        def __init__(self, **kw):
            super(Dict, self).__init__(**kw)
    
        def __getattr__(self, key):
            try:
                return self[key]
            except KeyError:
                raise AttributeError(r"'Dict' object has no attribute '%s'" % key)
    
        def __setattr__(self, key, value):
            self[key] = value
    

    编写单元测试类:

    unittest中有很多方法测试类中的属性的方法。

    # -*- coding: utf-8 -*-
    import unittest
    
    import Test
    
    class TestDict(unittest.TestCase):
        def test_init(self):
            d = Test.Dict(a=1, b='test')
            self.assertEqual(d['a'], 1)
            self.assertEqual(d['b'], 'test')
            self.assertTrue(isinstance(d, dict))
    
        def test_key(self):
            d = Test.Dict()
            d['key'] = 'value'
            self.assertEqual(d['key'], 'value')
    
        def test_attr(self):
            d = Test.Dict()
            d.key = 'value'
            self.assertTrue('key' in d)
            self.assertEqual(d['key'], 'value')
    
        def test_keyerror(self):
            d = Test.Dict()
            with self.assertRaises(KeyError):
                value = d['empty']
    
        def test_attrerror(self):
            d = Test.Dict()
            with self.assertRaises(AttributeError):
                value = d.empty
    
    if __name__=='__main__':
        TestDict.test_attrerror()
    

      

    setUp与tearDown

    可以在单元测试中编写两个特殊的setUp()tearDown()方法。这两个方法会分别在每调用一个测试方法的前后分别被执行。

    可以将类中每一个方法都需要运行的代码放到其中。比如连接数据库等操作

        def setUp(self):
            print 'setUp...'
    
        def tearDown(self):
            print 'tearDown...'
  • 相关阅读:
    RocketMq(一、双master模式集群搭建)
    activeMQ(二、与springboot集成)
    activeMQ(一、基础练习)
    oracle分区【转载】
    oracle索引
    实习 | 第一天
    再学ajax--第二天 | 基于php+mysql+ajax的表单注册、登录、注销
    再学ajax--第一天
    ECMAScript6入门学习--第一天
    关于px、pt、em、rem四个单位的解释
  • 原文地址:https://www.cnblogs.com/likeyou1/p/8430519.html
Copyright © 2011-2022 走看看