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 }