我已阅读Adding a method to an existing object instance,我明白了。
现在我有两个目录并有一些文件,如下所示:
.
|--A
| |--a_A.txt
| |--b_A.txt
|--B
| |--a_B.txt
| |--b_B.txt
我需要比较 a_A.txt 和 a_B.txt , b_A.txt和b_B.txt 。
我使用pyunit
,因为一个dirctory和B目标可能有很多文件,我想在每一轮都比较一下测试*函数,这个函数名是文件名,就像test_a_A
。
我有版本1代码,如下所示:
def _p(lst):
def wrapper(func):
def action(self):
for l in lst:
func(self, l)
return action
return wrapper
class CTest(unittest.TestCase):
expect = [] # A directory file list
actual = [] # B directory file list
@_p(lst=expect)
def testAction(self, filename):
self.do_compare(filename, actual[0]) # only example
如果代码喜欢这个,它只有一个结果testcase
。但是我有两个testcase
,所以除了文件名之外我还需要动态生成testcase
。
修改
完成!我使用setattr
添加动态属性。