• ベストアンサー

コマンド分岐処理 単体テスト

C言語勉強中です。Sub関数の単体テストを行いたいのですが、どうすれば良いのか分かりません。疑似mainを作ってそこに実行された関数の戻り値を返す?というのはなんとなく分かります・・。どういう風に書けばよいのか良いのですか?? #include<stdio.h> int sub_command(int icmd,LINE **stt_pnt,LINE **cur_pnt,LINE **help_pnt,char *afname) { static char *adress=NULL; static int iupdate=0; int ret; int pret; switch(icmd){ case 1: *cur_pnt=(*cur_pnt)->next; Sub_current(*stt_pnt,*cur_pnt); } break; case 2: Sub_apend(stt_pnt,cur_pnt); iupdate==1; break; case 3: Sub_delete(stt_pnt,cur_pnt); iupdate==1; Sub_current; break; case 4: Sub_past(cur_pnt,adress); iupdate==1; break; case 5: ret=Sub_save(*stt_pnt,iupdate,afname); if(ret==0){ iupdate==0; } break; case 6: adress=Sub_copy(*cur_pnt,adress); break; case 7: Sub_help(help_pnt); break; case -1: pret=Sub_quit(iupdate); break; } return pret; }

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

プログラム文が長いため、簡単なプログラムで説明します。 10倍にするsub_addの単体テスト #include <stdio.h> int main( ) { int i = 1; int j = sub_add( i ); printf( " %d " , j ); } sub_add( int k ){ return k*10; } これで、sub_add関数の結果をmain文で表示してあげることによって、sub_add関数が動作していることを確認できるので、これで10が表示できれば、単体テストOKということです。

その他の回答 (1)

回答No.1

参考URL参照。 printfやassertだけでもテストはできます。 要は適当な引数の組み合わせで関数を呼び出し、 期待する結果が得られたかを確認するだけです。

参考URL:
http://codezine.jp/article/detail/1075

関連するQ&A