我为我的项目创建了一些单元测试。
我有几个班级都有自己的单元。但是很多测试用例在原理上是相似的:
- 添点什么
- 获取添加元素
- 检查这个
例如:
Player.add_weapon("name")
Player.get_weapons()
for w in weapons:
- check the validity bla bla
Warehouse.add_package("name")
Warehouse.get_packages()
for p in packages:
- check the validity bla bla
你看,上下文不同,但过程相同。这是我的想法:(但也许它存在一个很好的处理模式)
def mytestfunction(ut_instance, test_obj, add_method_as_string, getlist_method_as_string):
add_obj = None
get_obj_list = None
exec("add_obj=test_obj.%s" % add_method_as_string)
exec("get_obj_list=test_obj.%s" % getlist_method_as_string)
ut_instance.assertEqal(len(get_obj_list()), 0, msg="We need a empty test object")
item = add_obj("lala")
list = get_obj_list()
#check this ..and so on ...
....
pass
它有效,但也许您知道更聪明的解决方案。例如控制期望或使用不同的参数。