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ということです。
No.1
- 回答日時:
参考URL参照。
printfやassertだけでもテストはできます。
要は適当な引数の組み合わせで関数を呼び出し、
期待する結果が得られたかを確認するだけです。
参考URL:http://codezine.jp/article/detail/1075
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# カードシャッフルのブログラムを使ってc言語でブラックジャックをしたい 2 2022/04/12 15:13
- JavaScript jsで、switch文で書かれた分をif文にできませんか。 1 2022/07/28 15:10
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
- Visual Basic(VBA) 【変更】ファイルを閉じてダイアログで保存した時、更新したシートだけの処理の実行をする 5 2022/03/26 18:31
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) エクセルのVBAでダブルクリックでチェックを入れたあと 1 2022/10/26 20:30
- JavaScript セレクトボックスを2つ設けて選択して初めてメッセを表示 1 2022/07/27 12:15
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- Visual Basic(VBA) Excelのマクロについて教えてください。 3 2022/06/30 09:36
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
#define _CRT_SECURE_NO_WARNIN...
-
C言語での引数の省略方法
-
「指定されたキャストは有効で...
-
複数桁10進数の*桁目だけを抽出...
-
卒業研究でよく分からないとこ...
-
ラップ関数とはどんなものですか?
-
(int *)の意味
-
if と配列の組み合わせ
-
足して100になるような乱数のア...
-
このプログラミング誰か教えて...
-
system関数がうまくいかない
-
【C++】関数ポインタの使い方
-
int16_t の _t は何?
-
C#の質問
-
エラー 添字が付けられた値が、...
-
構造体の勉強中です 合計点の高...
-
C言語 配列と関数の練習問題
-
c言語 〇×ゲーム
-
商と剰余を同時に求める(C言語)
-
c言語
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「指定されたキャストは有効で...
-
C言語での引数の省略方法
-
複数桁10進数の*桁目だけを抽出...
-
#define _CRT_SECURE_NO_WARNIN...
-
ラップ関数とはどんなものですか?
-
卒業研究でよく分からないとこ...
-
【C++】関数ポインタの使い方
-
実数の整数部,小数部の取得
-
std::set<int> で、ある値が何...
-
C言語 エラーの原因がわからな...
-
c言語
-
system関数がうまくいかない
-
C++でvectorにテキストファイル...
-
acceptをalarmでタイムアウトさ...
-
if と配列の組み合わせ
-
return 1L
-
「{ } で囲むだけ」は正しい?
-
(マルチスレッド)_beginthrea...
-
PowerShellがうまくいかない
-
このプログラミング誰か教えて...
おすすめ情報