为什么BOOST_AUTO_TEST_CASE不起作用?

时间:2010-09-29 16:19:55

标签: c++ testing

我做错了什么,但我不知道是什么。这是我的文件:

//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 个答案:

答案 0 :(得分:1)

删除_tmain - 不需要它,如果你有那个,测试永远不会执行。

在Win32 Visual Studio 2008上验证,输出为:

  

运行1个测试用例...

     

c:/temp/test/test.cpp(25):致命错误   在“my_test”中:严格检查   a.multiplyByTwo(2)== 5失败