Я пытаюсь сделать базовый модульный тест для очень простого класса C ++ в Visual Studio 2010. Я уже протестировал этот класс, и все работает.Тем не менее, когда я создаю тестовый проект, я не могу распознать класс.
Мой заголовочный файл класса:
#include <string>
#include <iostream>
using namespace std;
#ifndef FIRST_H
#define FIRST_H
class First
{
private:
string name;
int age;
public:
// Constructors
First(); // default constructor
First(string n, int a); // constructor with parameters
void ChangeAge(int newAge);
void ChangeName(string newName);
void getName();
void getAge();
};
#endif
Мой cpp-файл класса:
#include "First.h"
// Constructors
First :: First()// default constructor
{
name = "No Name";
age = 0;
}
First :: First(string n, int a) // constructor with parameters
{
name = n;
age = a;
}
//Manipulators
void First :: ChangeAge(int newAge)
{
age = newAge;
}
void First :: ChangeName(string newName)
{
name = newName;
}
// Observers
void First :: getName()
{
cout << "The name of this student is " << name << endl;
//cin >> name;
}
void First :: getAge()
{
cout << "The age of this student is " << age << endl;
}
Вот мой базовый модульный тест: // Примечание: все это генерируется автоматически, за исключением тела void TestMethod1 ()
#include "stdafx.h"
using namespace System;
using namespace System::Text;
using namespace System::Collections::Generic;
using namespace Microsoft::VisualStudio::TestTools::UnitTesting;
namespace TestProject5
{
[TestClass]
public ref class UnitTest1
{
public:
[TestMethod]
void TestMethod1()
{
First person; // Sets Age to 0
person.getAge(); // Should Display 0
}
};
}
При создании проекта модульного теста я получаюсообщение об ошибке: «Сначала это необъявленный идентификатор».
Если я изменю значение «public ref class» с «UnitTest1» на мое имя класса «First», я получу следующую ошибку: «'getAge» isне является участником "TestProject5 :: First" "