2010-09-29 4 views
0

Je fais quelque chose de mal mais je ne sais pas quoi. Voici mes fichiers:Pourquoi BOOST_AUTO_TEST_CASE ne fonctionne pas?

//main 
#include "stdafx.h" 


int _tmain(int argc, _TCHAR* argv[]) 
{ 

    return 0; 
} 


//MyFoo.h 
#pragma once 
#include "stdafx.h" 
class MyFoo 
{ 
public: 
    MyFoo(void){}; 
    int multiplyByTwo(int value); 
    ~MyFoo(void){}; 
}; 

//MyFoo.cpp 
#include "stdafx.h" 
#include "Myfoo.h" 
int MyFoo::multiplyByTwo(int value) 
{ 
    return value * 2; 
} 

//MyFoo_Test.cpp 
#include "stdafx.h" 
#include "Myfoo.h" 

#define BOOST_TEST_MODULE MyTest 
#include <boost/test/unit_test.hpp> 

BOOST_AUTO_TEST_CASE(my_test) 
{ 
    MyFoo a; 

    BOOST_REQUIRE(a.multiplyByTwo(2) == 5);//<<---It shouldn't work 

} 

Il semble que peu importe ce que je tape ce que ce sera 5, 4 ou huit ce test passe à chaque fois. Qu'est-ce que je fais mal?

Répondre

1

Enlever _tmain - ce n'est pas nécessaire, et le test ne s'exécute jamais si vous l'avez là.

Vérifié sur Win32 Visual Studio 2008, la sortie est:

Exécution 1 cas de test ...

c: /temp/test/test.cpp (25): erreur fatale dans " my_test ": vérification critique a.multiplyByTwo (2) == 5 échoué

Questions connexes