Unit testing 单元测试:如果要测试的方法/函数不';不存在

Unit testing 单元测试:如果要测试的方法/函数不';不存在,unit-testing,tdd,automated-tests,Unit Testing,Tdd,Automated Tests,我通过从数据库中读取以下信息实现了测试自动化: 要测试的方法的名称 方法的输入数据 预期结果 对于从数据库检索到的每一行,使用反射创建一个测试方法 到目前为止,在创建测试方法之前,我检查要测试的方法是否存在。如果没有,则不会创建测试方法 但是我想提供一些关于仍然需要编写的方法的信息。从某些角度来看,这些方法无法通过测试。那么,在这些测试中应该提出或发出什么类型的错误或警告呢 注:我目前使用的是PyUnit,它非常类似于JUnit,但我的问题并不针对任何框架。测试失败时该怎么做取决于它失败的

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

  • 要测试的方法的名称
  • 方法的输入数据
  • 预期结果
对于从数据库检索到的每一行,使用反射创建一个测试方法

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

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



注:我目前使用的是
PyUnit
,它非常类似于
JUnit
,但我的问题并不针对任何框架。

测试失败时该怎么做取决于它失败的原因

最安全的默认设置是假设测试失败是因为程序有bug。这是最安全的,因为它允许某人用最少的知识和精力编写一个应该失败的测试(这毕竟是测试框架的主要目的)。因此,如果方法不存在,则默认情况下使框架失败

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

在PyUnit中,它看起来是您想要的:

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

当你写“仍然需要测试的方法”时,你的意思是“仍然需要编写的方法”吗?@Daveshweisguth感谢你指出这一点。