谷歌的gtest
gtest是谷歌推出的一個開源的c/c++程序單元測試框架,為中國很多公司采用,據我所知百度和騰訊都在是gtest進行但測。
gtest的官方網站請訪問http://code.google.com/p/googletest/。在我未工作之前,在學校的時候,寫程序的時候從來不寫單測,也不知道如何去寫單測。我通常是通過一個小例子來驗證一段程序的正確性。這種做法是顯而易見的。
在用了gtest后會很方便得發現和解決問題,有效控制代碼中bug的數量。
gtest的一般結構如下所示:
class FooCalcTest:public testing::Test
{
protected:
virtual void SetUp()
??? {
??????? m_foo.Init();
??? }
virtual void TearDown()
??? {
??????? m_foo.Finalize();
??? }
??? FooCalc m_foo;
};
TEST_F(FooCalcTest, HandleNoneZeroInput)
{
??? EXPECT_EQ(4, m_foo.Calc(12, 16));
}
TEST_F(FooCalcTest, HandleNoneZeroInput_Error)
{
??? EXPECT_EQ(5, m_foo.Calc(12, 16));
}
在Setup中進行全局的初始化,注意對于每個case都會執行一遍Setup函數。TearDown是進行全局的釋放,是Setup的逆過程。TEST_F是定義case的宏。
如果你要詳細了解gtest,可以博客園上的參考文章專題:http://www.cnblogs.com/coderzh/archive/2009/04/06/1426755.html。
總結
- 上一篇: android 放大镜
- 下一篇: 海军轮机工程是什么兵种?