C++ 使用google测试框架编写单元测试时构造函数和其他成员函数的未解析符号
在我的myLib.vcproj中有一个说myLib的库 它有等级C++ 使用google测试框架编写单元测试时构造函数和其他成员函数的未解析符号,c++,visual-studio,unit-testing,googletest,C++,Visual Studio,Unit Testing,Googletest,在我的myLib.vcproj中有一个说myLib的库 它有等级 namespace mylibtuils{ struct DefaultHander: IHandler { DefaultHander():_mV1(0),_mV2(1), _mv3(4){ } ~DefaultHander(){} protected: int _mV1,_mV2, _mv3; bool _
namespace mylibtuils{
struct DefaultHander: IHandler
{
DefaultHander():_mV1(0),_mV2(1), _mv3(4){
}
~DefaultHander(){}
protected:
int _mV1,_mV2, _mv3;
bool _mflag1;
public:
void updateSettings(wstring xmlSourceFile);
};
}
我需要使用google测试框架编写单元测试。因此,我创建了另一个项目myLib_UT.vcproj,添加对gtest和myLib的引用
它有一个简单的代码
GTEST_API_ int main(int argc, char **argv) {
printf("Running main() from gtest_main.cc\n");
testing::InitGoogleTest(&argc, argv);
RUN_ALL_TESTS();
}
TEST(updateSettingstestcase, Positive)
{
mylibtuils::DefaultHander _handler;
wstring xmlSourceFile(L"D:\\testfile.xml");
_handler.updateSettings(xmlSourceFile);
ASSERT_TRUE(xmlSourceFile != L"");
}
当我构建它时,它表示构造函数的未解析符号
是否无法测试类是否位于单独的dll中?
我可以把所有的文件都添加到我的unittest项目中,但我最终会添加myLib所依赖的文件
请告知我如何解决此问题当然,您可以在google test中测试来自不同库的类。你能具体说明你到底遇到了什么样的错误吗?不幸的是,根据您提供的代码,我无法推断出任何东西。您能试着提供吗?一般来说,我建议不要使用以下划线开头的标识符。它们处于一系列的情况下,通过不以下划线开头任何标识符,可以更容易地避免任何冲突。确保实现了所有方法,并且导出了DLL外部所需的符号。当然,您可以在google test中测试来自不同库的类。你能具体说明你到底遇到了什么样的错误吗?不幸的是,根据您提供的代码,我无法推断出任何东西。您能试着提供吗?一般来说,我建议不要使用以下划线开头的标识符。它们处于一系列的情况下,不以下划线开头任何标识符更容易避免任何冲突。请确保实现所有方法,并导出DLL外部所需的符号。