
C#の単体テストで、MSTestを使用してテストを実施します。
開発環境はVisualStudio2015 Professionalになります。
このテストの対象関数に、他クラスの関数呼び出しを行う処理を持ったものがあるのですが、インスタンスはローカルで生成します。
こういった場合に、呼び出し先関数処理をテストケースごとに差し替えることは可能でしょうか?
「public virtual」と「public override」を用いて差し替える方法は、別質問でお伺いしたのですが、これについてはテスト対象関数と同クラス内であれば通用するものという認識です。
テスト対象関数の例は以下になります。
public class MainClass{
public bool start(){ ←テスト対象関数
SubClass s = new SubClass();
return s.Get();
}
}
internal class SubClass{
public bool Get(){ ←処理を差し替えたい関数
CSVファイル読み込み処理;
データ解析;
if(読み込みデータが正常データ){
return true;
}
else{
return false;
}
}
}
Get関数をテストケースごとにtrue固定、false固定に処理を差し替えたいと考えています。
※CSVファイルをテストケースごとに変更する、という方法は、この質問では無しにしてください。
No.2ベストアンサー
- 回答日時:
>ただ、関数個々で全部やれ、という意向のようなんです。
だから、SubClassのテストを書いて、ターゲットであるstart()のほうはおっしゃるようなfakeクラスを作ってテスト書けばいいのでは、と思います。
そうすればカバレッジは満足されるでしょう。
No.1
- 回答日時:
これ、もはや単体テストではないのでは?
SubClass「単体」のテストを書けば一発なのに…と感じます。
複数クラスの結合オブジェクトが対象であれば、それは結合テストですね。
どうしてもこの形で書かなければならない事情があるのでしょうか?
ご回答ありがとうございます。
私も同じ気持ちなんです。。。
ただ、関数個々で全部やれ、という意向のようなんです。
そのため、結合ではなく、単体にする必要がある、ということで、差し替えられないものかと悩んでいるところになります。
ただ、やはり差し替え困難な気がするので、シンボル定義のtrue用、false用を作ってGET関数に入れるしかないのかな、と思ってしまってたりします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java JavaのSingletonパターンのprivateの持つ意味が分かりません。 5 2022/06/12 10:38
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
- PHP アップロード画像数でCSSを分けることに成功したのですが、画像の横に文字を並べることが出来ません。 3 2023/07/28 17:16
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Excel(エクセル) Indirect関数について、Formulatextで抽出した数式を参照したい。 1 2022/12/15 11:16
- Java java 引数 戻り値のあるメソッド 3 2023/02/12 06:23
- C言語・C++・C# 大量のデータを読み込んで表示する速度を改善したい 8 2023/05/07 13:29
- C言語・C++・C# スタックフレームの消滅 6 2023/05/20 12:33
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C#の単体テストでローカル変数...
-
VBからBeckyを使用したメール送...
-
ソフト開発に関する仕様書の書...
-
EXCEL_VBAでOracleにADO接続し...
-
テストオペレーターとして採用...
-
メッセージボックスのタイトル設定
-
「クィエックメニュー」って、...
-
Excel-VBA コンテンツの作成日時
-
マーキーが表示されない
-
UNIX:テキストファイルのNULL...
-
プログラムの動作テストの仕事...
-
納品 vs ご納品 どちらが正し...
-
「スポット受注」はどういう意...
-
テストについて
-
プログラムを作ってもらう費用
-
業務管理ソフトについて
-
パソコンをたちあげるとへんな...
-
HPのTOPページによくあるTOPIX...
-
Zと2とか紛らわしいのがあるか...
-
敬語チェックお願いします!
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
texに関する初歩的な質問
-
JUnit結果出力をファイルに書き...
-
C#単体テストで同クラス内の呼...
-
UPS APC製 C#2005でバッ...
-
Verilogの参考書のお勧めを教え...
-
C#の単体テストでローカル変数...
-
Visial C++におけるプログラミング
-
携帯サイトのテスト
-
Mac上でCGIのテストをしたいです
-
ホームページ・ビルダーで「e...
-
プログラムの動作テストの仕事...
-
テスト仕様書作成って初心者(...
-
Javaランタイムの対応OSについて
-
HWNDへの変換
-
VBからBeckyを使用したメール送...
-
Excel-VBA コンテンツの作成日時
-
単体試験 ブラックボックステス...
-
仕様書について
-
P2P地震速報のEEW APIの仕様書...
-
VB6 コードでメニュー作成
おすすめ情報