【问题标题】:writing testcases for classes in my c++ program running on linux在我在 linux 上运行的 c++ 程序中为类编写测试用例
【发布时间】:2011-02-02 07:45:02
【问题描述】:

我是编写测试用例的初学者,所以我不知道测试用例,你能简要解释一下测试用例,以及如何为我的 C++ 程序编写测试用例(类、成员函数) ,成员变量,....) 帮助我编写这些并编译和运行它。

提前致谢

【问题讨论】:

  • 你应该至少偶尔接受一次回复 :)

标签: c++ linux unit-testing class


【解决方案1】:

首先:

  1. 首先为自己找到一个你喜欢的框架:wikipedia list of frameworks here
  2. 安装并阅读其文档
  3. 确定方法的不变量、有效和无效输入,并编写测试以确保它们得到执行。我的建议是编写以黑盒方式进行测试的测试。 IE。您并不关心方法是如何做到的,但您会检查结果是否正常,输入良好(极端情况和正常情况),并且当输入错误时,它也会以一种好的方式失败。
  4. This answer elaborates on how to write good tests

一些一般性建议:

  • 编写可能会失败或不会失败的测试,编写可能在出现问题时会失败的测试是皮塔饼。
  • 永远不要相信你没有看到失败的测试。
  • 一次写一个测试
  • 尽量让测试用例保持自治。确保您测试的是提交给测试的代码,而不是基础设施。单元测试是确保您的类依赖于接口的好方法。
  • 测试方法的实现细节通常是个坏主意。当有人正确地重写代码时,您不希望测试失败。如果您觉得需要测试实现,您可能有另一个隐藏在代码中的类也应该进行单元测试。

【讨论】:

  • 我不同意这句话“测试方法的实现细节通常是个坏主意。” .如果您提供基础设施 API,则为错误,当您更改实现时(以性能问题为例),您可能会不自觉地更改行为。在这种情况下约束测试是一种容易知道向上兼容性被破坏的方法。
  • @VGE 那么我们不同意,我会说,在大多数情况下,当您遇到您描述的情况时,您应该有另一个正在测试的类来提供实现细节。当然,除非这会妨碍你的表现,但这就是我说“最经常”的原因。
【解决方案2】:

Cxxtest 确实有用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-17
    • 1970-01-01
    • 2015-05-15
    相关资源
    最近更新 更多