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
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 #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); };
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 #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"); }
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
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)); }; }; }
et avec j'ai des centaine d'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
Donc ai je oublier quelque chose ?
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
Avez vous une idée de ce que je dois faire pour que cela fonctionne ?
Je vous remercie d'avance pour votre aide
Partager