Bu hatayı alıyorum ama nasıl düzelteceğimi bilmiyorum.
Visual Studio 2013 kullanıyorum. Çözüm adını MyProjectTest yaptım Bu benim test çözümümün yapısı:
- 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;
}
Acemiyim; bu basit bir programdır ve hatasız çalışır. İnternette okudum ve ünite testiyle ilgilenmeye başladım, bu yüzden bir test projesi oluşturdum:
Dosya> Yeni> Proje ...> Yüklendi> Şablonlar> Visual C ++> Test> Yerel Birim Test Projesi>
Ad: UnitTest1 Çözüm: Çözüme ekle Daha sonra konum, geçerli açık çözümün yoluna otomatik olarak değiştirildi Bu, çözümün klasör yapısıdır:
Sadece unittest1.cpp dosyasını düzenledim:
#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
}
};
}
Ancak LNK2019 hatası alıyorum: çözülmemiş harici sembol. Çoklu fonksiyon uygulamasının eksik olduğunu biliyorum . Function.cpp dosyasını silmeye çalıştım ve bildirimi tanımla değiştirdim ve çalıştırdım. Ancak hem beyanı hem de tanımı aynı dosyaya yazmanız önerilmez. Bunu yapmadan bu hatayı nasıl düzeltebilirim? #include "../MyProjectTest/function.cpp"
Unittest.cpp dosyasında değiştirmeli miyim ?
(İngilizcede pek iyi değilim. Teşekkürler)