Discuss / Python / 谁能帮助理解一下,哎,难度越来越大了

谁能帮助理解一下,哎,难度越来越大了

Topic source

给点指导吧!

import unittest      #unittest 测试模块
from mydict import Dict    #从mydict.py模板中导入Dict类
class TestDict(unittest.TestCase): #(unittest封测的标准类)
    def test_init(self):   #先测验Dict()中key-valve是否匹配!!!
        d=Dict(a=1,b='test')       #检验valve为int,str数据类型的情况
        self.assertEqual(d.a,1)
        self.assertEqual(d.b,'test')
        self.assertTrue(isinstance(d,dict))  #检验Dict()是否是dict类型

    def test_key(self):        #检测d['key']与d.key是否等价!!!   
        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):        #抛出key法输入未存在key的错误
        d=Dict()
        with self.assertRaises(KeyError):
            value=d['empty']

    def test_attrerror(self):        #抛出属性赋值法输入未存在key的错误
        d=Dict()
        with self.assertRaises(AttributeError):
            value=d.empty

if __name__=='__main__':            #套路
    unittest.main()

我不知道理解的对不对,但我感觉这个测试程序有点证充要条件的意思,证明了A=B还要证明B=A,计算机需要这样思考吗?

水滴竹沙

#3 Created at ... [Delete] [Delete and Lock User]

我个人的理解如下: test --init--跟你这边理解的一样,检验实例类型,key-value是否匹配 test_key、test_attr主要是通过两种不同的赋值方式,看看d['key]与d.key是否符合 test_keyerror、test_attrerror主要是通过在实例为空的情况下,看看是否有异常情况的出现 通过这3中检测来保证key-value匹配正确、互相调用正确,调用实例为空也不会出现异常,最大程度上保证类的有效性


  • 1

Reply