package com.ygl;
public class MyStack {
private String [] elements;
private int nextIndex;
public MyStack(){
elements=new String [100];
nextIndex=0;
}

public void push(String element) throws Exception{
if(100==nextIndex){
throw new Exception("数组越界异常");
}
elements[nextIndex++] =element;
}

public String pop() throws Exception{
if(0==nextIndex){
throw new Exception("数组越界异常");
}
return elements[--nextIndex];
}
}//********************************************************
package com.ygl;
import junit.framework.Assert;
import junit.framework.TestCase;public class MyStackTest extends TestCase {
private MyStack myStack;
@Override
public void setUp() throws Exception {
myStack =new MyStack();

}

public void testPush(){
try {
myStack.push("hello world");
} catch (Exception e) {
Assert.fail();
}

String result=null;
try {
result=myStack.pop();
} catch (Exception e) {


}
Assert.assertEquals("hello world", result);
}
public void testPush2(){
for( int i=0;i<100;i++){
try{
myStack.push(i+"");
}catch(Exception e){
Assert.fail();
}
}
for(int i=0;i<100;i++){
String result=null;
try{
result=myStack.pop();
}catch(Exception e){

}
Assert.assertEquals(99-i+"", result);
}
}
public void testPush3(){
Exception ex=null;
try{
for(int i=0;i<=100;i++){
myStack.push(i+"");
}
Assert.fail();
}catch(Exception e){
ex=e;
}
Assert.assertNotNull(ex);
Assert.assertEquals(Exception.class, ex.getClass());
Assert.assertEquals("数组越界异常", ex.getMessage());
}
public void testPop(){
try {
myStack.push("hello world");
} catch (Exception e) {

}

String result=null;
try {
result=myStack.pop();
} catch (Exception e) {

Assert.fail();
}
Assert.assertEquals("hello world", result);
}

public void testPop2(){

Throwable tx=null;
String result=null;
try {
result=myStack.pop();
Assert.fail();
} catch (Exception e) {
tx=e;
}
Assert.assertNotNull(tx);
}


}