teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

途中で投稿してしまったたため再度編集しました。

2021/08/04 08:35

投稿

MomenToufu
MomenToufu

スコア10

title CHANGED
File without changes
body CHANGED
@@ -55,18 +55,47 @@
55
55
  ```
56
56
  単体テスト対象のクラス(ソース)
57
57
  ```C++
58
-
58
+ #include "Sum.h"
59
+ void TEST_SUM::Sum::setA(int a)
60
+ {
59
- ソースコード
61
+ this->a = a;
62
+ }
63
+ void TEST_SUM::Sum::setB(int b)
64
+ {
65
+ this->b = b;
66
+ }
67
+ int TEST_SUM::Sum::sum()
68
+ {
69
+ return this->a + this->b;
70
+ }
60
71
  ```
72
+ テストコード
73
+ ```C++
74
+ #include "pch.h"
75
+ #include "CppUnitTest.h"
76
+ #include "../Stady_TEST2/Sum.h"
77
+ //#include "../Stady_TEST2/Sum.cpp"
61
78
 
79
+ using namespace Microsoft::VisualStudio::CppUnitTestFramework;
62
80
 
63
- ### ソースコードのディレクトリ構造
81
+ namespace UnitTest1
82
+ {
83
+ TEST_CLASS(UnitTest1)
84
+ {
85
+ public:
86
+ TEST_METHOD(TestMethod1)
87
+ {
88
+ TEST_SUM::Sum ABC;
89
+ ABC.setA(10);
90
+ ABC.setB(10);
64
91
 
92
+ Assert::AreEqual(20, ABC.sum());
93
+ }
94
+ };
95
+ }
96
+ ```
65
97
 
66
- ### 試したこと
67
98
 
68
- ここに問題に対して試したことを記載してください。
69
-
70
99
  ### 補足情報(FW/ツールのバージョンなど)
71
-
72
- ここにより詳細な情報を記載してください。
100
+ Visual Studio 2019
101
+ Microsoft CppUnitTestフレームワークを使用

1

過剰な文字列削除

2021/08/04 08:35

投稿

MomenToufu
MomenToufu

スコア10

title CHANGED
File without changes
body CHANGED
@@ -3,8 +3,8 @@
3
3
   現在、C++のコードにおいて単体テストについて学習しています。
4
4
  任意のクラスのメンバー関数を対象としてテストコードを作成したのですが、ビルド時にリンクエラーが発生します。
5
5
 
6
- 0. テストコードでは、対象としているクラスのヘッダーファイルをインクルードしてます(AAAの2行目)
6
+ 0. テストコードでは、対象としているクラスのヘッダーファイルをインクルードしてます。
7
- 0. 対象としてるクラスはヘッダーとソースは別のファイルにしてます(AAA BBB)
7
+ 0. 対象としてるクラスはヘッダーとソースは別のファイルにしてます。
8
8
  0. 2のヘッダーとソースを1つのファイルとした時、この問題は起きません。
9
9
  0. テストコードで対象としているクラスのヘッダーとソースファイルをインクルードするとこの問題は起きません。
10
10
  0. メイン関数(対象のクラスを宣言、定義しているプロジェクトのメイン関数)からではリンクエラーは発生しません。