それで、ブースト単体テストを使い始めました。クラスのインスタンスを作成する簡単なテストをビルドしようとすると、コンパイル エラーが発生します。クラスのインスタンスがなくても問題なく動作します。
コンパイル エラー メッセージは次のとおりです。
/src/test/WTFomgFail_test.cpp: In member function ‘void WTFomgFail::defaultConstructor::test_method()’:
/src/test/WTFomgFail_test.cpp:20: error: expected primary-expression before ‘obj’
/src/test/WTFomgFail_test.cpp:20: error: expected `;' before ‘obj’
WTFomgFail_test.cpp:
#include "WTFomgFail.hpp"
#define BOOST_TEST_MODULE WTFomgFail
#define BOOST_TEST_MAIN
#define BOOST_TEST_DYN_LINK
#include <boost/test/unit_test.hpp>
BOOST_AUTO_TEST_SUITE(WTFomgFail)
BOOST_AUTO_TEST_CASE( defaultConstructor )
{
WTFomgFail obj = WTFomgFail();
BOOST_MESSAGE("wow, you did it");
}
BOOST_AUTO_TEST_SUITE_END()
WTFomgFail.hpp:
#ifndef WTFOMGFAIL_HPP_
#define WTFOMGFAIL_HPP_
class WTFomgFail
{
public:
WTFomgFail();
~WTFomgFail();
};
#endif /* WTFOMGFAIL_HPP_ */
WTFomgFail.cpp:
#include "WTFomgFail.hpp"
WTFomgFail::WTFomgFail()
{
}
WTFomgFail::~WTFomgFail()
{
}
BOOST_AUTO_TEST_SUITE(WTFomgFail)
他のものに変更すると、エラーはなくなりますBOOST_AUTO_TEST_SUITE(OMGreally)
。
#define BOOST_TEST_MODULE OMGreally
さらに、 withを使用してもエラーは発生しませんBOOST_AUTO_TEST_SUITE(OMGreally)
。
それで、私の質問は、ブーストUTFを使用してモジュール、test_suite、およびクラスに同じ名前を付けることは明示的に禁止されている場合ですか?