我已经开始在我想要测试的类中将测试编写为静态函数。这些函数通常测试功能,它们创建大量对象,测量内存消耗(检测泄漏)等等。
这是好的还是坏的做法?从长远来看,它会咬我吗?
答案 0 :(得分:3)
我将它们分开,因为我不希望测试类包含在可部署工件中。没有必要增加.exe的大小或让它们可供客户使用。
我建议使用CppUnit编写单元测试。
答案 1 :(得分:1)
不,你应该改为unit tests。
答案 2 :(得分:1)
我会说这不是最佳做法,但它是“好的”,因为它不会破坏你的程序或导致它崩溃。有很多事情可以做,但你不应该这样做。
答案 3 :(得分:1)
在所有权,部署,非功能性要求等方面,测试代码与生产代码根本不同。因此,最好将它与被测试的代码分开,在单独的文件中,甚至可能在不同的目录中。
为了便于测试中的类的白盒单元测试,您经常需要将测试类/测试函数声明为朋友。有些课程只对公众成员进行单元测试,因此并不总是需要添加朋友。
将测试代码与测试代码结合起来非常简单:只需在同一个项目中将目标文件链接在一起。
有时您可以看到#include
正在测试的代码的单元测试代码,但我建议不要这样做 - 例如,如果你有测试覆盖率测量工具(强烈推荐!),那么措施就赢了“对于被测代码是正确的。
答案 4 :(得分:1)
如果你的班级里面有你的测试用例,就很难有像固定装置这样的东西。
我也要向Boost.Test大声喊叫。学习曲线有点高,但是一旦你习惯了它就会很棒。
答案 5 :(得分:0)
这是不好的做法。
您应该有一个单独的类来测试您正在创建的类。你正在做的事情是使用测试代码膨胀生产代码。这不是你应该做的。
你想要测试类Foo的方式是这样的:
//Foo.cpp
class Foo {
public:
int GetInt() { return 15; }
};
//FooTest.cpp
TEST(FooTest, testGetIntShouldReturn15) {
Foo foo;
ASSERT_EQUAL(15, foo.GetInt());
}