如何将Google Test测试用例标记为“预计会失败”?

问题描述 投票:7回答:3

我想为尚未实现的功能添加一个测试用例,并将此测试用例标记为“我可以失败”。

有没有办法做到这一点?

编辑:我希望测试执行,只要测试用例处于“预期的失败”状态,框架就应该验证它是否失败。

EDIT2:似乎我感兴趣的功能在google-test中不存在,但它确实存在于the Boost Unit Test FrameworkLIT中。

c++ unit-testing googletest
3个回答

0
投票

我不知道这样做的直接方法,但你可以用这样的东西伪造它:

try {
  // do something that should fail
  EXPECT_TRUE(false);
} catch (...) {
  // return or print a message, etc.
}

基本上,如果达到矛盾的预期,测试将失败。


-2
投票

将单元测试置于预期到失败状态是不常见的。单元测试可以测试正条件(“期望x等于2”)或负面条件(“如果savename,则期望null抛出异常”),并且可以标记为不运行(如果该功能正在等待并且你不想要测试输出中的噪音)。但是你似乎要求的是一种在你正在努力的时候否定一个功能测试的方法。这是针对测试驱动开发的租户。

在TDD中,您应该做的是编写准确描述功能应该做什么的测试。如果尚未编写该功能,那么根据定义,这些测试将会失败。然后你实现该功能,直到所有这些测试通过为止。您希望所有测试都以失败开始,然后转移到传递。这就是您知道功能何时完成的方式。

想想如果你能够将失败的测试标记为按照你的建议传递它会是什么样子:所有测试都会通过,当功能不起作用时,一切都会看起来完整。然后,一旦你完成并且功能按预期工作,突然你的测试将开始失败,直到你进入并取消标记它们。除了是一种奇怪的工作方式之外,这种工作流程很容易出错和误报。

© www.soinside.com 2019 - 2024. All rights reserved.