c++ - 测试类

标签 c++ unit-testing

我昨天组织了一个类来完成一些有用的任务。我开始了 alpha 测试,并在某个时候意识到我正在向类本身添加 alpha 测试相关方法。我突然意识到他们不属于那里。经过一番摸索之后,我从基类派生了一个测试类,它也可以访问 protected 成员。我将所有与测试相关的方法放在测试类中,并在测试类中进行设置和拆除,并保留了基类,如俗话所说的那样精简。

在这里浏览了一段时间后,我发现一条评论建议通过使测试类成为真实类的 friend 来使用这种技术。

回想起来,这两种技术对我来说应该是显而易见的。

我正在寻找的是专门用于 alpha 测试/单元测试类的技术,而不增加被测试类的权重。

您个人使用过哪些技术并推荐?

最佳答案

单元测试的目标之一是验证类的接口(interface)。这意味着,一般来说,你不应该测试你类(class)的脏东西。单元测试应该与类的公共(public)输入和输出交互,并验证行为是否符合预期。因此,您可以更改类的内部实现,而不会影响依赖它的所有其他对象。显然,我不知道你所处情况的细节,但我会说,作为一般规则,如果你的单元测试试图找出类的私有(private)细节,那你就做错了。

编辑:另见:This SO question .请注意,它可以完成(最佳答案),但也要注意第二名的答案(略微领先)与我上面提到的大致相同。

关于c++ - 测试类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/342037/

相关文章:

c++ - (Swig to python)导入错误:dynamic module does not define init function

c++ - 随着数字变大,c++ 中的 std::sqrt 函数会变慢吗?

c++ - 为什么这段代码以相反的方式工作?

java - 我如何对以下锁和多线程代码进行单元测试

unit-testing - 使用模板 golang 进行单元测试

mysql - go-testfixtures Fixtures.Load()返回校验和错误

java - 在 JUnit 切换到 TestNG 后我的测试不起作用

c# - 如何取消设置整数中的特定位

c++ - 后缀运算符链表通用节点迭代器

java - PowerMockito 在父类(super class)静态方法上给出 InvalidUseOfMatchersException