0

私はCでコーディングしています。SwapメソッドとBubbleSortメソッドのコードを作成しましたが、それらのTDDテストを実行する方法がわかりません。これらの各メソッドが正しく機能することを確認するための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]); 
      }
      }
  }
}
4

1 に答える 1

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 を実行することになります。

于 2013-03-07T15:16:07.783 に答える