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...'
  • 相关阅读:
    c#常用的技巧
    在Web应用程序中使用Castle ActiveRecord
    Castle Query返回System.String程序报错的解决方法
    C++标准转换运算符const_cast
    Linux目录解释
    [转载]存储过程与函数的区别
    详解GCC的下载和安装
    Linux控制台的快捷键
    Linux下软件的安装和卸载
    电路交换,报文交换和分组交换
  • 原文地址:https://www.cnblogs.com/likeyou1/p/8430519.html
Copyright © 2011-2022 走看看