プロが教える店舗&オフィスのセキュリティ対策術

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;
}

A 回答 (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ということです。
    • good
    • 0

参考URL参照。



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

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

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!