一、测试文件创建
1.namedtuple详解
2.测试文件创建
二、执行测试
namedtuple是tuple的兄弟,也是元组的一种,但是功能更加强大。tuple一个域对应参数值,而namedtuple可以定义一个名字的多个域。
. __new __.defaults__为创建的namedtuple的对象默认赋值,注意均为双下划线
namedtuple的两个函数_asdict()与_replace():
_asdict()将对象拆解为字典
_replace()对原始属性的值进行修改,返回新的对象,原始对象不修改
注意点:测试文件的开头以test_开头,测试函数也以test_开头
from collections import namedtuple
Task=namedtuple("Task",['summary','name','done','id'])
Task.__new__.__defaults__=(None,None,False,None)
#对象测试
def test_defaults():
t1=Task()
t2=Task(None,None,False,None)
assert t1==t2
#对象的属性进行测试
def test_member_access():
t3=Task('buy milk','lucia')
assert t3.summary=='buy milk'
assert t3.name=='lucia'
assert (t3.done,t3.id)==(False,None)
#对象转换为字典进行测试
def test_dict_access():
t4=Task('swimming','xiao ming',True,123)
t5_dict=t4._asdict()
expend1={
'summary':'swimming','name':'xiao ming','done':True,'id':123}
assert t5_dict==expend1
#对象的值被重新赋值后进行测试
def test_reset_access():
t6=Task('do homework','Mike')
t7_reset=t6._replace(id=123,done=True)
assert t6==Task('do homework','Mike',False,None)
assert t7_reset==Task('do homework','Mike',True,123)
assert为断言,用来判断表达式1与表达式2是否相同,四个测试用例,结果均为Ture