A 回答 (4件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
自分も色々と悩みましたが、結論は「private 関数はテスト対象にしないほうが良い」ということに落ち着きました。
private 関数は public なインターフェースの実装上の都合によって存在するものなので、仕様が安定せず、テストコードが書けないからです。
もし仕様を安定化できるならば、private 関数にせず別のクラスの public 関数として分離したほうが良いです。
回答ありがとうございます
なるほど
privateな関数はテストしないという方針もありますね
現在、ハッシュ計算のようなそのクラスの中だけで使用する関数がprivateであり
これのアルゴリズムが正しいかテストしたいのです
値の計算にはクラスのメンバも使用するため
そのクラス外部に切り出すことができません
この場合どのようにテストすればよろしいでしょうか
# 市場にはprivateなメンバをテストできる有償のツールもあるようですが
# 数十万円~するので用意することが難しいです
No.2
- 回答日時:
そのクラス自体を実装しているときなど、クラス外のテストプログラムからprivateメンバを書き出したいときなどあると思います。
自分は、コーディング段階では「public」のところを「private」に変えておいて、完成してから「private」に戻してますが、いかがでしょうか?
回答ありがとうございます
publicのところをprivateに変えると
本来、クラス外部から呼ぶところも外部から呼べなくなってしまいますが
テストは実装クラス本体に記述する、ということでしょうか
置き換える件については
privateやprotectedを直接使用せず、
MY_PRIVATEやMY_PROTECTEDのようなマクロを作成しておき
テストの時はpublic、リリース時はそれぞれ本来のアクセス修飾子に置換されるようにしたこともありますが
この方法はテストのためのコードを埋め込むことになるので他の方法も探しています
(どうしても方法が見つからなければ、friendクラスや上記マクロを使用する予定です)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C# DatagridviewにExcelシートを反映するとエラーが出る 2 2023/05/06 17:12
- 高校 テスト勉強について 中間テストの結果がかえってきたのですがあまりよくありませんでした。 現代の国語と 2 2023/06/05 00:46
- 中学校 終わった…。 中2です。いろいろと終わりました…。 1つ目が塾…。私の塾では学校のテスト前(中間テス 10 2022/05/24 17:55
- Java JavaのSingletonパターンのprivateの持つ意味が分かりません。 5 2022/06/12 10:38
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/04 12:47
- 数学 複素関数論について、中間テストが40%で、期末テストが60%と書いてある場合、宿題はどうとおもいます 1 2022/11/23 13:47
- 高校受験 第一志望を受けることが認めらなかった 2 2023/02/23 10:57
- 中学校 明日テストなのですが、、、 3 2022/09/28 21:52
- 高校受験 志望校を下げさせられたので1年生から本気で勉強 6 2023/02/22 01:26
- 数学 100点満点のテストでクラス30人のテストの得点を元に、階級の幅を10点とした度数分布表をつくるとき 6 2022/05/23 18:10
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
FriendとPublicの違い。。。
-
(UWSC) 「#32770」の意味わかり...
-
既定のコンストラクタがない?
-
クラスのアドレスを引数として...
-
CMainFrameクラスの使い方
-
C++ protectedにアクセス不可
-
ボタンのオーナードローについて
-
privateなメンバ関数をテストす...
-
エディットコントロールでEnter...
-
VB.NETでのEnumの使用について
-
C# 別プロジェクトのフォームを...
-
ダイアログ表示時にチェックボ...
-
MFC モードレスDlgについて
-
MessageBoxを継承したい
-
メンバ変数のサイズの増加
-
【ASP.NET】 独自で作成したク...
-
MFCのCListCtrlでスクロールを検出
-
派生クラスから基本クラスprote...
-
【C++】相互参照
-
このコンパイルエラーの意味に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
FriendとPublicの違い。。。
-
既定のコンストラクタがない?
-
イベントにAddHandlerされてい...
-
クラスのアドレスを引数として...
-
ダイアログ表示時にチェックボ...
-
(UWSC) 「#32770」の意味わかり...
-
エディットコントロールのイベ...
-
エディットコントロールでEnter...
-
WindowsAPIのリストビューの...
-
CMainFrameクラスの使い方
-
DebugクラスとTraceクラスの違い
-
MessageBoxを継承したい
-
C++ protectedにアクセス不可
-
MFCアプリのコマンドラインでパ...
-
このコンパイルエラーの意味に...
-
MFCのドラッグ&ドロップについて
-
【ASP.NET】 独自で作成したク...
-
派生クラスから基本クラスprote...
-
ダイアログクラスのコントロー...
-
C#で通常のbuttonコントロール...
おすすめ情報