測試驅動開發,英文全稱 test-driven development,簡稱tdd,是一種不同於傳統軟體開發流程的新型的開發方法。它要求在編寫某個功能的**之前先編寫測試**,然後只編寫使測試通過的功能**,通過測試來推動整個開發的進行。這有助於編寫簡潔可用和高質量的**,並加速開發過程。
測試驅動開發的基本過程如下:
1. 快速新增乙個測試;那麼在實際開發中,我們怎麼樣才能做到這一步呢?我們以下面乙個例子來說明:2. 執行所有的測試(有時候只需要執行乙個或一部分),發現新增的測試不能通過;
3. 做一些小小的改動,盡快地讓測試程式可執行,為此可以在程式中使用一些不合情理的方法;
4. 執行所有的測試,並且全部通過;
5. 重構**,以消除重複設計,優化設計結構簡單來說,就是不可執行/可執行/重構——這正是測試驅動開發的口號。
.h 標頭檔案
/** 執行緒類*/
class threadx
;
.cpp檔案
/** constructor*/
threadx::threadx(int npriority)
:m_npriority(npriority)
,m_nrunstatu(0)
threadx::~threadx()
bool threadx::isfinished() const
bool threadx::isrunning() const
/** start thread*/
void threadx::start()
if( 1==m_nrunstatu || !_beginthread() )
return;
}/** stop thread*/
void threadx::stop()
/** 執行緒函式*/
void threadx::th_work(void *pcontex)
bool threadx::_beginthread()
#else
/* sched_param param;
param.sched_priority = sched_get_priority_max(sched_rr);
pthread_attr_t attr;
pthread_attr_init(&attr);
pthread_attr_setschedpolicy(&attr, sched_rr); // sched_other(default), [sched_fifo,sched_rr](real time for super user only)
pthread_attr_setschedparam(&attr, ¶m);
int nret = pthread_create(&m_hthread, &attr, th_work, this);
*/ // 預設屬性為非繫結、非分離、預設1mb堆疊、與父程序有相同優先順序。
int nret = pthread_create(&m_hthread, null, th_work, this);
if (0 != nret) // 建立監聽執行緒失敗
#endif
return true;
}
對於上面的**如何測試其準確性呢?不要等到寫完**才想起來測試,拜託!(我估計99%的人都聽不進去這個)
你應該先這樣寫:
#include "threadx.h"
int main(int argc, char **argv)
沒錯,先寫完上述測試例之後,再去填充 threadx 吧,threadx 裡的函式記得打上log,用於測試結果顯示! 測試驅動開發之基礎 單元測試
學習測試驅動開發之前,應當正確理解一下單元測試的概念,學習單元測試之後可以清楚的知道所謂的單元為單一職責的乙個方法即乙個方法只做一件事情,這也符合物件導向的單一職責的原則。因此單元測試的概念可以籠統的理解為 針對乙個工作單元設計的測試。單元測試有各種不同的編寫方式,但所有單元測試有些共同的特徵 1....
菜鳥之驅動開發12
在本節中,我們學習在驅動中如何操作雙向鍊錶 鍊錶的建立,初始化,遍歷,刪除。驅動中有自己的鍊錶接構,也有相專用的操作鍊錶函式,也可以用c c 中自已實現的鍊錶。驅動中的鍊錶接構是 list entry 操作鍊錶的主要api有 initializelisthead 初始化鍊錶 islistempty ...
測試開發之測試基礎
一 測試的定義 通過人工或自動的手段,對被測物件進行檢測的活動。目的在於發現被測物件是否實現使用者的需求,或者弄清楚實際結果和預期結果之間的差異。二 測試的目的 三 測試的七大原則 四 測試的物件 測試物件包括軟體源 與軟體源 匹配的文件和支撐軟體源 執行的配置資料。測試物件 按照時間可分為 五 測...