单元测试:如果要测试的 method/function 不存在怎么办

Unit testing: what to do if the method/function to test doesn't exist

我通过从数据库中读取以下信息来自动化我的测试:

对于从数据库中检索到的每一行,都会使用反射创建一个测试方法。

到目前为止,在创建测试方法之前,我会检查要测试的方法是否存在。如果没有,则不会创建测试方法。

但我想提供有关仍需编写的方法的信息。从某些角度来看,这些是未通过测试的方法。那么,在这些测试中应该提出或发出什么类型的错误或警告?


P.S:我目前使用的 PyUnitJUnit 非常相似,但我的问题并不特定于任何框架。

测试失败时如何处理取决于失败的原因。

最安全的默认设置是假设测试失败是因为程序有错误。这是最安全的,因为它允许某人以最少的知识和努力编写一个应该失败的测试(这毕竟是测试框架的主要目的)。因此,如果方法不存在,请让您的框架默认失败。

但是测试可能会失败,因为您已经编写了测试但尚未实施。 (对你有好处,你正在做 TDD!)如果你在实现其中任何一个之前编写了几个测试,你可能希望这些测试通过,这样你就不会将正在进行的工作与回归混淆。事实上,一些框架有一种方法可以将测试标记为正在进行的工作,这样它就不会失败但会发出警告提醒您完成工作。这就是我处理您未实现的方法的方式。

在 PyUnit 中,看起来 the skip() decorator 就是您想要的:

@unittest.skip('method not implemented yet')