编写一个扩展Python单元测试的自定义fail()方法



我有一个Pythonunittest.TestCase类的自定义专业化,其中包括自动日志记录&提供了定制的业务验证方法,可用于大量不同的定制测试场景。

我需要一个自定义版本的Python单元测试。TestCase.fail(…(,它可以与记录器而不是格式化程序使用相同的消息字符串。

我想避免像这样定义我的消息字符串的两个版本:

def verifySomething(self, p_one:str, p_two:str):
if self.someClass.some_command():
self.test_result = TestResult.PASSED
message = "my custom message : %s and %s - %s"
self.logger.info(message, p_one, p_two, self.test_result)
else:
self.test_result = TestResult.FAILED
message = "my custom message : {} and {} - {}".format(p_one, p_two, self.test_result)
self.fail(message)

相反,做一些类似的事情,

def verifySomething(self, p_one:str, p_two:str):
message = "my custom message : %s and %s - %s"
if self.someClass.some_command():
self.test_result = TestResult.PASSED
self.logger.info(message, p_one, p_two, self.test_result)
else:
self.test_result = TestResult.FAILED
self.fail(message, p_one, p_two, self.test_result)

注意:这是一个简化的例子,我省略了Pre&为简洁起见,张贴条件。

摘要:如何编写一个覆盖Python单元测试的自定义失败函数。TestCase.失败(…(吗?

我只需要预先格式化消息:

def verifySomething(self, p_one:str, p_two:str):
if self.someClass.some_command():
self.test_result = TestResult.PASSED
display_func = self.logger.info
else:
self.test_result = TestResult.FAILED
display_func = self.fail
message = "my custom message: {} and {} - {}".format(p_one, p_two, self.test_result)
display_func(message)

不需要利用self.logger.info的能力来为您编写最后一个字符串。

最新更新