我收到此错误,但是我不知道如何解决。
我使用的是Visual Studio2013。我将解决方案的名称命名为MyProjectTest, 这是我的测试解决方案的结构:
- function.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;
}
我是初学者;这是一个简单的程序,它运行没有错误。我在互联网上阅读并对单元测试感兴趣,因此创建了一个测试项目:
文件>新建>项目...>已安装>模板> Visual C ++>测试>本机单元测试项目>
名称:UnitTest1 解决方案:添加到解决方案 然后位置自动切换到当前打开的解决方案的路径这是解决方案的文件夹结构:
我只编辑了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:无法解析的外部符号。我知道缺少函数multi的实现。我试图删除function.cpp文件,并用定义替换了声明,然后它开始运行。但是不建议将声明和定义都写在同一个文件中。如果不这样做,如何解决此错误?是否应该#include "../MyProjectTest/function.cpp"
在unittest.cpp文件中替换为?
(我不太会英语。谢谢)