Bonjour a tous,
j'essaie dapprendre a écrire des tests unitaire avec VS2008.
Malheureusement, impossible d’écrire le moindre test qui compile....

Voici une class que je voudrai tester:
NPI.h
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#pragma once
#include <iostream>
#include <stdexcept>
using namespace std;

class NPI
{
public:

	NPI();
	~NPI();

	static const double add(double num1,double num2);
	static const double sub(double num1,double num2);
	static const double mul(double num1,double num2);
	static const double div(double num1,double num2);
};
NPI.cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include "NPI.h"

NPI::NPI()
{

}

NPI::~NPI()
{

}

const double NPI::add(double num1,double num2){
	return num1+num2;
}

const double NPI::sub(double num1,double num2){
	return num1-num2;
}

const double NPI::mul(double num1,double num2){
	return num1*num2;
}

const double NPI::div(double num1,double num2){
	if(num2==0)
		throw domain_error("Division by zero");
	return num1/num2;
}

void main()
{
	cout << "3+2=" << NPI::add(3.0,2.0)<<endl;
	cout << "3-2=" << NPI::sub(3.0,2.0)<<endl;
	cout << "3*2=" << NPI::mul(3.0,2.0)<<endl;
	cout << "3/2=" << NPI::div(3.0,2.0)<<endl;
	system("pause");
}
J'ai donc créer un projet de test et une class de test unitaire:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#include "stdafx.h"
#include "../UnityTest/NPI.h"

using namespace System;
using namespace System::Text;
using namespace System::Collections::Generic;
using namespace	Microsoft::VisualStudio::TestTools::UnitTesting;

namespace TestProject1
{
	[TestClass]
	public ref class Test_NPI
	{
	private:
		TestContext^ testContextInstance;

	public: 
		/// <summary>
		///Gets or sets the test context which provides
		///information about and functionality for the current test run.
		///</summary>
		property Microsoft::VisualStudio::TestTools::UnitTesting::TestContext^ TestContext
		{
			Microsoft::VisualStudio::TestTools::UnitTesting::TestContext^ get()
			{
				return testContextInstance;
			}
			System::Void set(Microsoft::VisualStudio::TestTools::UnitTesting::TestContext^ value)
			{
				testContextInstance = value;
			}
		};

		#pragma region Additional test attributes
		//
		//You can use the following additional attributes as you write your tests:
		//
		//Use ClassInitialize to run code before running the first test in the class
		//[ClassInitialize()]
		//static void MyClassInitialize(TestContext^ testContext) {};
		//
		//Use ClassCleanup to run code after all tests in a class have run
		//[ClassCleanup()]
		//static void MyClassCleanup() {};
		//
		//Use TestInitialize to run code before running each test
		//[TestInitialize()]
		//void MyTestInitialize() {};
		//
		//Use TestCleanup to run code after each test has run
		//[TestCleanup()]
		//void MyTestCleanup() {};
		//
		#pragma endregion 

		[TestMethod]
		void TestAdd1()
		{
			Assert.AreEqual(4.0,NPI::add(2.0,2.0));
		};
	};
}
Donc sans la ligne #include "../UnityTest/NPI.h" je me retrouve avec une erreur type:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
.\Test_NPI.cpp(59) : error C2143: syntax error : missing ';' before '.'
.\Test_NPI.cpp(59) : error C2143: syntax error : missing ';' before '.'
.\Test_NPI.cpp(59) : error C2653: 'NPI' : is not a class or namespace name
et avec j'ai des centaine d'erreur type:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
Error	1	error C4956: 'va_list *' : this type is not verifiable	c:\Program Files\Visual Basic Express\VC\include\vadefs.h	89
Donc ai je oublier quelque chose ?
Avez vous une idée de ce que je dois faire pour que cela fonctionne ?

Je vous remercie d'avance pour votre aide