Почему BOOST_AUTO_TEST_CASE не работает? - PullRequest
0 голосов
/ 29 сентября 2010

Я делаю что-то не так, но не знаю что.Вот мои файлы:

//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 

}

Кажется, что неважно, что я наберу, будет 5, 4 или 8, этот тест проходит каждый раз.Что я делаю не так?

1 Ответ

1 голос
/ 29 сентября 2010

Удалить _tmain - он не нужен, и тест никогда не будет выполнен, если он у вас есть.

Проверено на Win32 Visual Studio 2008, вывод:

Выполнение 1 контрольного примера ...

c: /temp/test/test.cpp (25): фатальная ошибка в "my_test": критическая проверка a.multiplyByTwo (2) == 5 не удалось

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...