CppUnit
うーん、結局今日は半日CppUnitに費やしてしまった。とりあえずこんなかんじでしょうか。
//#include#include //#include #include //#include #include //全部インクルードしたほうが無難な気がする・・・ class TestSample : public CppUnit::TestFixture { private: int *i; public: void setUp(){ i = new int(0); } void tearDown(){ delete i; } void test01(){ CPPUNIT_ASSERT(*i == 0); } void test02(){ CPPUNIT_ASSERT(*i+1 == 0); } static CppUnit::Test *suite(){ CppUnit::TestSuite *suite = new CppUnit::TestSuite("TestSample"); suite->addTest(new CppUnit::TestCaller < TestSample > ("test01", &TestSample::test01)); suite->addTest(new CppUnit::TestCaller < TestSample > ("test02", &TestSample::test02)); return suite; } }; int main() { CppUnit::TextUi::TestRunner runner; runner.addTest(TestSample::suite()); runner.run(); return 0; }
で
% g++ sample.cpp -o sample -I$HOME/local/include -L$HOME/local/lib -lcppunit
こんな感じでしょうか。もちろんパスが通ってればライブラリの指定だけでいいけど。結果は
% ./sample ..F !!!FAILURES!!! Test Results: Run: 2 Failures: 1 Errors: 0 1) test: test02 (F) line: 22 sample.cpp "*i+1 == 0"
こんな感じみたい。HelperMacros.hとか使うともっと楽できそう。もう少しいじってみますか。