我试图弄清楚如何以一种方式来修饰测试函数,使来自修饰器的信息可供安装程序使用。代码如下所示:
import unittest
class MyTest(unittest.TestCase):
def setUp(self):
stopService()
eraseAllPreferences()
setTestPreferences()
startService()
@setPreference("abc", 5)
def testPreference1(self):
pass
@setPreference("xyz", 5)
def testPreference2(self):
pass
安装程序的目标是了解它正在运行testPreference1
,并知道在启动服务之前需要将首选项“abc”设置为5(与“xyz”和testPreference2类似)
当然,我可以在测试名(if self._testMethodName == "testPreference1"
)上使用一个条件,但随着测试数量的增加,这感觉不太容易维护(+重构更容易出错)。我希望在setUp
中解决这个问题,而不是覆盖run
实现。我也有
我正在运行python3.6,尽管如果有依赖于较新python特性的创造性解决方案,我也很乐意了解这一点
装饰器工作得很好,但是没有真正的“官方”方法来获取底层方法,所以我只做了unittest源代码所做的:
method = getattr(self, self._testMethodName)
相关问题 更多 >
编程相关推荐