質問編集履歴

1

ソース記載

2019/12/25 12:13

投稿

J-GUN
J-GUN

スコア24

test CHANGED
File without changes
test CHANGED
@@ -29,3 +29,157 @@
29
29
 
30
30
 
31
31
  お分かりになる方がいらっしゃいましたら教えていただけると助かります。
32
+
33
+
34
+
35
+ 追記
36
+
37
+ 本題とは直接関係ないかと思いソースを省略しましたが記載しました。
38
+
39
+ 環境はSaito Atsushiさんがおっしゃる通りVisual Studio 2015 for Windows DesktopでMicrosoft::VisualStudio::CppUnitTestFrameworkを使用しています。
40
+
41
+
42
+
43
+ ```C++
44
+
45
+ class ClassA{
46
+
47
+ public:
48
+
49
+ double dArray[RAW][COL];
50
+
51
+ unsigned short usArray[RAW][COL];
52
+
53
+ double dVal;
54
+
55
+ unsigned short usVal;
56
+
57
+
58
+
59
+ public:
60
+
61
+ Reset();
62
+
63
+ };
64
+
65
+
66
+
67
+ ```
68
+
69
+
70
+
71
+ ```C++
72
+
73
+ namespace TestClassA{
74
+
75
+ TEST_CLASS(TestClassAReset){
76
+
77
+ public:
78
+
79
+ TEST_METHOD(Reset_dArray)
80
+
81
+ TEST_METHOD(Reset_usArray)
82
+
83
+ TEST_METHOD(Reset_dVal)
84
+
85
+ TEST_METHOD(Reset_usVal)
86
+
87
+
88
+
89
+ private:
90
+
91
+ template <typename T> void TestArrayReset(T* arr, int raw, int col);
92
+
93
+ template <typename T> void TestArrayMatch(T* arr, int raw, int col, T compVal);
94
+
95
+ template <typename T> void TestValReset(T val);
96
+
97
+ template <typename T> void TestValMatch(T val, T comVal);
98
+
99
+
100
+
101
+ private:
102
+
103
+ ClassA* m_cl;
104
+
105
+ };
106
+
107
+ }
108
+
109
+ ```
110
+
111
+
112
+
113
+ ```C++
114
+
115
+ void TestClassAReset::Reset_dArray(){
116
+
117
+ m_cl = new ClassA();
118
+
119
+ TestArrayReset(&m_cl->dArray[0][0], RAW, COL);
120
+
121
+ delete m_cl;
122
+
123
+ }
124
+
125
+
126
+
127
+ void TestClassAReset::Reset_dVal(){
128
+
129
+ // new, delete省略
130
+
131
+ TestArrayVal(&m_cl->dVal);
132
+
133
+ }
134
+
135
+ // Reset_usArray, Reset_usValは引数にusArray, usValを使用すること以外は同様のため省略
136
+
137
+
138
+
139
+ template <typename T> void TestClassAReset::TestArrayReset(T* arr, int raw, int col){
140
+
141
+ // m_clの値を0以外で初期化
142
+
143
+ m_cl->Reset();
144
+
145
+ TestArrayMatch(arr, raw, col, (T)0);
146
+
147
+ }
148
+
149
+
150
+
151
+ template <typename T> void TestClassAReset::TestArrayReset(T* arr, int raw, int col, T compVal){
152
+
153
+ for(int i = 0; i < RAW; i++){
154
+
155
+ for(int j = 0; j < COL; j++){
156
+
157
+ Assert::AreEqual(comVal, arr[i*COL + j]); // エラーになる
158
+
159
+ }
160
+
161
+ }
162
+
163
+ }
164
+
165
+
166
+
167
+ template <typename T> void TestClassAReset::TestValReset(T val){
168
+
169
+ // m_clの値を0以外で初期化
170
+
171
+ m_cl->Reset();
172
+
173
+ TestValMatch(val, (T)0);
174
+
175
+ }
176
+
177
+
178
+
179
+ template <typename T> void TestClassAReset::TestValMath(T val, T compVal){
180
+
181
+ Assert::AreEqual(comVal, val); // エラーにならない
182
+
183
+ }
184
+
185
+ ```