我正在尝试使用 Microsoft CppUnitTestFramework。我在一个解决方案中有两个独立的项目,一个是实际代码,另一个是单元测试代码。现在我想测试在第一个项目中定义的“DijkstarImpl”类,并在项目 Properties->C++->General->AdditionalInclude 目录中添加了该类的路径。测试项目编译成功,但是当我运行测试时出现此错误:
错误 2 错误 LNK2001:未解析的外部符号“公共:静态类 DijkstarImpl * UnitTest_FasTrack::UnitTest1::dijkstarImpl”(?dijkstarImpl@UnitTest1@UnitTest_FasTrack@@2PAVDijkstarImpl@@A) C:\working\TestFastTrack\UnitTest_FasTrack\unittest1.obj
错误 3 错误 LNK2001: 无法解析的外部符号 "public: __thiscall DijkstarImpl::DijkstarImpl(void)" (??0DijkstarImpl@@QAE@XZ) C:\working\TestFastTrack\UnitTest_FasTrack\unittest1.obj
错误是链接器错误,但我不知道我应该链接什么?它不是要包含在 Properties->Linker->Input 中的 lib 文件。以下代码段显示了单元测试代码。
#include "stdafx.h"
#include "CppUnitTest.h"
#include "DijkstarImpl.h"
#include "string.h"
using namespace Microsoft::VisualStudio::CppUnitTestFramework;
namespace UnitTest_FasTrack
{
TEST_CLASS(UnitTest1)
{
static DijkstarImpl* dijkstarImpl;
public:
TEST_CLASS_INITIALIZE(Initialize)
{
static DijkstarImpl* UnitTest_FasTrack::UnitTest1::dijkstarImpl;
}
TEST_METHOD(TestMethod1)
{
}
};
}