【发布时间】:2016-10-01 15:18:22
【问题描述】:
我不熟悉使用 Catch c++ 单元测试框架。
我正在尝试测试我建立的一个类,例如我有两个文件,
一个cow.cpp 文件和一个cow.h 文件:cow.h:
class Cow{
public:
Cow(std::string name);
void moo(std::string someWords);
private:
std::string name;
};
cow.cpp:
Cow::Cow(std::string cowName){
name = cowName;
}
void Cow::moo(std::string someWords){
std::cout << "my name is " << name <<" mooo " << someWords <<"\n";
}
现在我想为该类编写一个测试,所以我创建了一个测试文件testCow.cpp,并包含catch.h c++ 单个头文件和cow.h 头文件,
但是现在当我尝试调用方法 moo 我得到一个未定义的方法调用,说它不存在,解决这个问题的唯一方法是将整个 s++ 实现复制到测试文件中,这真的不是一个好练习...
我正在使用标准的 g++ 命令编译我的文件,并且正在使用 sublime 文本编辑器来编辑我的文件,因此包含或绑定文件没有什么特别的。
知道为什么会发生这种情况以及如何解决吗?
【问题讨论】:
-
请发布您的测试代码和完整的错误消息。
标签: c++ unit-testing include