我有许多扩展基类的单元测试。
我想为所有测试用例添加验证条件。我知道我可以在每次测试中做到
def validate(self):
# The base validation
BaseTest.validate(self)
# This test validation
self.assertGrep(file='correlator.log', exprList='TEST PASSED')
有没有办法只通过修改基类而无需修改所有测试用例来实现这一目标?
或者它是否需要在Runner扩展中完成?
答案 0 :(得分:2)
TemplateMethod拯救模式:
class BaseTest(unitest.Testcase):
def validate(self):
do_the_common_validation()
self.validate_more()
def validate_more(self):
pass
然后在您的子类中,您只需覆盖validate_more()
。
答案 1 :(得分:2)
就此问题所基于的pysys测试框架而言,框架内没有针对您想要实现的目标的具体支持。使用元类的上一个问题(stackoverflow.com/questions/8618157 / ...)的答案可能允许您执行您想要的操作而无需更新每个测试