显示标签为“UnitTest”的博文。显示所有博文
显示标签为“UnitTest”的博文。显示所有博文

星期四, 四月 01, 2010

如何使用shunit2來做unit test

如何使用shunit2

(1) 下載 shunit2-2.1.3.tgz
tar zxvf shunit2-2.1.3.tgz


(2) 建議…
在.bashrc中,加上一個alias
alias get_shunit2='cp XXXX/shunit2-2.1.3/src/shell/shunit2 ./'

在 /tmp目錄下做實驗:
get_shunit2 // 這樣可以把需要的shunit2 拷貝到/tmp資料夾下。


(3) 寫一個test suite , 名稱是 test.sh
//////內容/////
#! /bin/sh

testEquality()
{
assertEquals 1 1
}

# load shunit2
. ./shunit2
/////////////

(4) sh test.sh

使用gtest來做Unit Test

非常簡單、非常好上手。

(1) 下載gtest-1.4.0.tar.bz2
tar jxvf gtest-1.4.0.tar.bz2

(2) ./configure
make
sudo make install
ldconfig // 因為它有灌library

(3) 準備要被測的檔案
for example: humorless.h
///////// 內容 ///////////
class Sample
{
public:
int return_100()
{
return 100;
}
};
/////////////////////////
(4) 準備好test suite
for example: tester.cpp
///////////// 內容 ///////////
#include
#include "humorless.h"

TEST(Sample, return_100) {
Sample c;

// EXPECT_EQ() evaluates its arguments exactly once, so they
// can have side effects.

EXPECT_EQ(0, c.return_100());
EXPECT_EQ(1, c.return_100());
EXPECT_EQ(2, c.return_100());
}

int main(int argc, char **argv)
{
testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
//////////////////////////

(5) g++ -o tester tester.cpp -lgtest
./tester
// 記得要去link 啊…