一些簡單的單元測試概念

 
去年聽了李維大師的一些講座,那時是第一次聽到「單元測試」,他勸我們要使用,他的說法是,若你要將程式佈署到不同平台,你怎麼知道程式都沒有問題?
 
因為那講座是 Delphi / C++Builder ,是可以把程式佈署在 Windows , Mac , iOS , Android。
 
以前總是自己隨手在程式中寫一些測試程式,一個副程式測試成功,測試的部份就刪除了,長久以來都是這樣。
 
手邊正在改寫一個程式,有跨平台的需求,近來想到此事,就動手寫單元測試,這樣的好處是,未來將程式移到 mac 或其他平台時,就可以直接進行測試,應該可以減少一些平台不相容的隱藏性錯誤。
 
其實單元測試有許多現成的工具,不過我用的 Code::Blacks 剛好沒有(因為要寫跨平台,所以沒有用 C++ Builder),又懶得另外找,而且跨平台之後會不會有同樣的工具也不知道,就自己動手寫簡單的版本。
 
底下是很簡單的一個概念,大致可以看出它的原理,我實際寫的比較物件化、模組化一點,網路上也可以找到一些相關資料,這些讓有需要的人參考參考了。
int main()
{
  if(RUN_TEST)
  {
    runtest();
    return 0;
  }

  // main program....

}

// 主要的單元測試
void runtest()
{
  int i = add(3,4);
  if (i==7) printf("add (3,4) OK");
  else printf("add (3,4) fail");
}

// 待測的副程式
int add(x,y)
{
  return (x+y);
}
重要度:
文章分類:
電腦標籤:

發表新回應