
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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
texに関する初歩的な質問
-
HWNDへの変換
-
Visial C++におけるプログラミング
-
C#の単体テストでローカル変数...
-
VB6 コードでメニュー作成
-
納品 vs ご納品 どちらが正し...
-
「スポット受注」はどういう意...
-
三菱製PLC:ファイルレジスタ(...
-
Windows server 2022 CALとSQL ...
-
営業職をやってます。先月発注...
-
見積書と発注書を兼用できるの...
-
契約期間内における値上げ等に...
-
印刷会社がミスプリント。その...
-
テキストファイル内の外字の有無
-
電子納品 CDへの捺印について
-
発注書と見積書の品番が異なっ...
-
システムを作るにあたり、SQLSe...
-
長さ0の文字列を格納できません...
-
Excel VBA(マクロ)処理...
-
テストについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
texに関する初歩的な質問
-
C#の単体テストでローカル変数...
-
VBからBeckyを使用したメール送...
-
テスト仕様書作成って初心者(...
-
JUnit結果出力をファイルに書き...
-
Excel-VBA コンテンツの作成日時
-
プログラマに渡すテスト結果に...
-
「クィエックメニュー」って、...
-
プログラムを実際に実行したと...
-
ホームページ・ビルダーで「e...
-
仕様書に書かれていないこと
-
単体テストについて
-
ソフト開発に関する仕様書の書...
-
テストオペレーターとして採用...
-
納品の定義,システムの動作の常...
-
単体テストについて
-
メッセージボックスのタイトル設定
-
VBで画像から線で囲まれた場所...
-
マーキーが表示されない
-
C#単体テストで同クラス内の呼...
おすすめ情報