我得到了这个错误,但我不知道如何修复它。
我使用的是 Visual Studio 2013,我将解决方案命名为 < strong > MyProjectTest 这是我的测试解决方案的结构:
函数 h
#ifndef MY_FUNCTION_H
#define MY_FUNCTION_H
int multiple(int x, int y);
#endif
- function. cpp
#include "function.h"
int multiple(int x, int y){
return x*y;
}
main.cpp
#include <iostream>
#include <cstdlib>
#include "function.h"
using namespace std;
int main(){
int a, b;
cin >> a >> b;
cout << multiple(a, b) << endl;
system("pause");
return 0;
}
我是一个初学者,这是一个简单的程序,它运行没有错误。 我在互联网上阅读并对单元测试产生了兴趣,所以我创建了一个测试项目:
菜单 档案→ New→ 计划..。→ 已安装→ 模板→ Visual C + + → 测试→ 本地单元测试项目→
姓名: UnitTest1
Solution: Add to solution
然后位置自动切换到当前开放解的路径。
这是解决方案的文件夹结构:
我只编辑了文件 Unittest1.cpp:
#include "stdafx.h"
#include "CppUnitTest.h"
#include "../MyProjectTest/function.h"
using namespace Microsoft::VisualStudio::CppUnitTestFramework;
namespace UnitTest1
{
TEST_CLASS(UnitTest1)
{
public:
TEST_METHOD(TestEqual)
{
Assert::AreEqual(multiple(2, 3), 6);
// TODO: Your test code here
}
};
}
但我明白:
错误 LNK2019: 未解析的外部符号。
我知道函数 多个的实现缺失了。 I tried to delete the Cpp file and I replaced the declaration with the definition, and it ran. But writing both declaration and definition in the same file is not recommended.
如何在不这样做的情况下修复这个错误? 是否应该在 unittest.cpp 文件中用 #include "../MyProjectTest/function.cpp"
替换它?