我正在嘗試啓動單元測試。我正在看一些C++框架,並想嘗試Boost.Test。文檔看起來非常徹底,而且有點壓倒性,尤其是對於單元測試新手來說。所以這裏是我想要的情況:幫助開始使用Boost.Test
假設我有2個類,Foo
和Bar
。我想爲Foo
和Bar
一組測試編寫一套測試,最好在不同的文件中。我只想運行帶有命令行參數的程序時才運行測試。所以我main()
應該是這個樣子:
int main(int argc, const char* argv[])
{
if (argc == 1 && strcmp(argv[0], "-test") == 0)
run_all_tests();
else
return program_main(argc, argv);
}
我覺得test_foo.cpp
應該是這樣的:
#include "foo.hpp"
#define BOOST_TEST_MODULE Foo test
#include <boost/test/unit_test.hpp>
BOOST_AUTO_TEST_SUITE(Foo_Test)
BOOST_AUTO_TEST_CASE(Foo1)
{
Foo f;
BOOST_CHECK(f.isValid());
}
BOOST_AUTO_TEST_CASE(Foo2)
{
Foo f;
BOOST_CHECK(f.baz() == 5);
}
BOOST_AUTO_TEST_SUITE_END()
不過,我不知道(1)什麼實際的命令來運行測試的, (2)如何真正告訴圖書館我想運行每個測試。
那麼,誰有經驗Boost.Test?有人可以幫助一個詳細的方式?非常感謝。
我不明白...你如何正常運行程序(沒有測試)? – rlbond 2009-06-08 01:26:54
基本上你的test_foo.cpp應該被構建爲一個單一的.exe程序,並鏈接到包含Foo&Bar類的庫。其中一個boost.test頭文件已經定義了主函數,所以我不認爲你提出的是可行的。 – oscarkuo 2009-06-08 01:37:25