Junit3.8 Stackテスト
14771 ワード
1 package test; 2
3 public class MyStack 4 { 5 private String[] elements; 6
7 private int nextIndex; 8
9 public MyStack() 10 { 11 elements = new String[100]; 12 nextIndex = 0; 13 } 14
15 public void push(String element) throws Exception 16 { 17 if(100 == nextIndex) 18 { 19 throw new Exception(" !"); 20 } 21
22 elements[nextIndex++] = element; 23 } 24
25 public String pop() throws Exception 26 { 27 if(0 == nextIndex) 28 { 29 throw new Exception(" !"); 30 } 31
32 return elements[--nextIndex]; 33 } 34
35 public void delete(int n) throws Exception 36 { 37 if(nextIndex - n < 0) 38 { 39 throw new Exception(" !"); 40 } 41
42 nextIndex -= n; 43 } 44
45 public String top() throws Exception 46 { 47 if(0 == nextIndex) 48 { 49 throw new Exception(" !"); 50 } 51
52 return elements[nextIndex - 1]; 53 } 54
55 } 56
57 package junit; 58
59 import junit.framework.Assert; 60 import junit.framework.TestCase; 61
62 @SuppressWarnings("deprecation") 63 public class MyStackTest extends TestCase 64 { 65 private MyStack myStack; 66
67 @Override 68 public void setUp() throws Exception 69 { 70 myStack = new MyStack(); 71 } 72
73 // , , 。
74 public void testPush() 75 { 76 try
77 { 78 myStack.push("hello world"); 79 } 80 catch (Exception e) 81 { 82 Assert.fail(); 83 } 84
85 String result = null; 86
87 try
88 { 89 result = myStack.pop(); 90 } 91 catch (Exception ex) 92 { 93
94 } 95
96 Assert.assertEquals("hello world", result); 97 } 98
99 // , 100
100 public void testPush2() 101 { 102 for (int i = 0; i < 100; i++) 103 { 104 try
105 { 106 myStack.push(i + ""); 107 } 108 catch (Exception ex) 109 { 110 Assert.fail(); 111 } 112 } 113
114 for (int i = 0; i < 100; i++) 115 { 116 String result = null; 117
118 try
119 { 120 result = myStack.pop(); 121 } 122 catch (Exception ex) 123 { 124
125 } 126
127 Assert.assertEquals((99 - i) + "", result); 128 } 129 } 130
131 // ,101
132 public void testPush3() 133 { 134 Exception tx = null; 135
136 try
137 { 138 for (int i = 0; i <= 100; i++) 139 { 140 myStack.push(i + ""); 141 } 142
143 Assert.fail(); 144 } 145 catch (Exception ex) 146 { 147 tx = ex; 148 } 149
150 assertData(tx); 151 } 152
153 public void testPop() 154 { 155 try
156 { 157 myStack.push("hello world"); 158 } 159 catch (Exception e) 160 { 161
162 } 163
164 String result = null; 165
166 try
167 { 168 result = myStack.pop(); 169 } 170 catch (Exception ex) 171 { 172 Assert.fail(); 173 } 174
175 Assert.assertEquals("hello world", result); 176 } 177
178 public void testPop2() 179 { 180 Throwable tx = null; 181
182 try
183 { 184 myStack.pop(); 185
186 Assert.fail(); 187 } 188 catch (Exception ex) 189 { 190 tx = ex; 191 } 192
193 assertData(tx); 194 } 195
196 public void testPop3() 197 { 198 Throwable tx = null; 199
200 try
201 { 202 myStack.push("hello"); 203 } 204 catch (Exception ex) 205 { 206
207 } 208
209 try
210 { 211 myStack.pop(); 212 myStack.pop(); 213
214 Assert.fail(); 215 } 216 catch (Exception ex) 217 { 218 tx = ex; 219 } 220
221 assertData(tx); 222 } 223
224 public void testTop() 225 { 226 try
227 { 228 myStack.push("hello"); 229 } 230 catch (Exception ex) 231 { 232
233 } 234
235 String result = null; 236
237 try
238 { 239 result = myStack.top(); 240 } 241 catch (Exception ex) 242 { 243 Assert.fail(); 244 } 245
246 Assert.assertEquals("hello", result); 247 } 248
249 public void testTop2() 250 { 251 Throwable tx = null; 252
253 try
254 { 255 myStack.top(); 256
257 Assert.fail(); 258 } 259 catch (Exception ex) 260 { 261 tx = ex; 262 } 263
264 assertData(tx); 265 } 266
267 public void testDelete() 268 { 269 try
270 { 271 for (int i = 0; i < 10; i++) 272 { 273 myStack.push(i + ""); 274 } 275
276 myStack.delete(10); 277 } 278 catch (Exception ex) 279 { 280 Assert.fail(); 281 } 282 } 283
284 public void testDelete2() 285 { 286 Throwable tx = null; 287
288 try
289 { 290 for (int i = 0; i < 10; i++) 291 { 292 myStack.push(i + ""); 293 } 294
295 myStack.delete(11); 296
297 Assert.fail(); 298 } 299 catch (Exception ex) 300 { 301 tx = ex; 302 } 303
304 assertData(tx); 305 } 306
307 private void assertData(Throwable tx) 308 { 309 Assert.assertNotNull(tx); 310 Assert.assertEquals(Exception.class, tx.getClass()); 311 Assert.assertEquals(" !", tx.getMessage()); 312 } 313
314 }