zoukankan      html  css  js  c++  java
  • 使用unittest进行单元测试

      Python没有静态类型检测机制, 编译器不能保证程序一定会在运行的时候正确执行, 需要通过一些测试确保所写的函数能正确运行, 使用python内置的unittest模块进行, 参考以下代码以作备忘。

    import unittest
    
    class Dict(dict):
    
        def __init__(self, **kw):
            super().__init__(**kw)
    
        
        def __getattr__(self, key):
            try:
                return self[key]
            except KeyError:
                raise AttributeError("Dict object has no attribute {0}".format(key))
    
    
        def __setattr__(self, key, value):
                self[key]=value
    
    
    class TestDict(unittest.TestCase):
    
        def test_init(self):
            d = 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 = Dict()
            d['key'] = 'value'
            self.assertEqual(d.key, 'value')
    
    
        def test_attr(self):
            d = Dict()
            d.key = 'value'
            self.assertTrue('key' in d)
            self.assertEqual(d['key'], 'value')
    
    
        def test_keyerror(self):
            d = Dict()
            with self.assertRaises(KeyError):
                value = d['empty']
    
    
        def test_attrerror(self):
            d = Dict()
            with self.assertRaises(AttributeError):
                value = d.empty
    
    
    if __name__ == '__main__':
        unittest.main()

    参考 链接

  • 相关阅读:
    MTK 官方 openwrt SDK 使用
    PF_RING packet overwrites
    pycares cffi
    libevent evbuffer bug
    浮点转字符串性能比较
    重写 libev 的 EV_WIN32_HANDLE_TO_FD
    thrift TNonblockingServer 使用
    accel-pptp 部署
    boost::asio 使用 libcurl
    蜂鸟A20开发板刷 cubietruck 的 SD 卡固件
  • 原文地址:https://www.cnblogs.com/skadieye/p/10124801.html
Copyright © 2011-2022 走看看