2013-03-07 47 views
0

我使用C語言編寫代碼。我爲Swap方法和Bubble Sort方法編寫了代碼,但我不知道如何爲它們運行TDD測試。你能告訴我如何創建TDD測試來驗證每種方法的正常工作嗎?這裏是我的每種方法的代碼:C.通過交換和分類測試的TDD測試?

/** 
* swaps the values referenced by p and q 
*/ 
void swap (int *p, int *q) 
{ 
    int tmp; 

    tmp = *p; 
    *p = *q; 
    *q = tmp; 
} 

/** 
* an implementation of bubble sort 
* n is the size of array a 
*/ 
void bubble (int a[], int n) 
{ 
    int i, j; 

    for (i = 0; i < n-1; i++) 
    { 
    for (j = n-1; i < j; j--) 
     { 
     if (a[j-1] > a[j]) 
     { 
     swap (&a[j-1], &a[j]); 
     } 
     } 
    } 
} 
+2

這個問題是一個笑話嗎?如果在寫測試之前完成實現,你怎麼能做測試驅動開發呢? – vipw 2013-03-07 14:38:28

+0

我不認爲這是可能的,但是我的教授堅持讓我先寫代碼,然後編寫測試來驗證代碼是否正常工作。我不知道該怎麼做。 – 2013-03-07 14:48:40

+0

我認爲你的教授實際上是要求進行單元測試。 – vipw 2013-03-07 15:08:51

回答

0

這裏是關於單元測試的基本思想。您單獨測試一小部分代碼。如果此測試已通過,但排序不起作用,您將知道錯誤在排序實施中,而不是交換。

void testSwap() { 
    int a = 0; 
    int b = 1; 

    swap(&a, &b); 
    if (a == 1) 
    printf("ok"); 
    if (b == 0) 
    printf("ok"); 
} 

如果您在實現swap()函數之前編寫testSwap()函數,您將會執行TDD。