Junit3.8 Stack测试
package test; 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];
} public void delete(int n) throws Exception
{
if(nextIndex - n < 0)
{
throw new Exception("数组越界异常!");
} nextIndex -= n;
} public String top() throws Exception
{
if(0 == nextIndex)
{
throw new Exception("数组越界异常!");
} return elements[nextIndex - 1];
} } package junit; import junit.framework.Assert;
import junit.framework.TestCase; @SuppressWarnings("deprecation")
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 ex)
{ } Assert.assertEquals("hello world", result);
} //测试正常情况的临界情况,即放入100个元素栈是否会出错
public void testPush2()
{
for (int i = 0; i < 100; i++)
{
try
{
myStack.push(i + "");
}
catch (Exception ex)
{
Assert.fail();
}
} for (int i = 0; i < 100; i++)
{
String result = null; try
{
result = myStack.pop();
}
catch (Exception ex)
{ } Assert.assertEquals((99 - i) + "", result);
}
} //测试异常情况,101个元素输入
public void testPush3()
{
Exception tx = null; try
{
for (int i = 0; i <= 100; i++)
{
myStack.push(i + "");
} Assert.fail();
}
catch (Exception ex)
{
tx = ex;
} assertData(tx);
} public void testPop()
{
try
{
myStack.push("hello world");
}
catch (Exception e)
{ } String result = null; try
{
result = myStack.pop();
}
catch (Exception ex)
{
Assert.fail();
} Assert.assertEquals("hello world", result);
} public void testPop2()
{
Throwable tx = null; try
{
myStack.pop(); Assert.fail();
}
catch (Exception ex)
{
tx = ex;
} assertData(tx);
} public void testPop3()
{
Throwable tx = null; try
{
myStack.push("hello");
}
catch (Exception ex)
{ } try
{
myStack.pop();
myStack.pop(); Assert.fail();
}
catch (Exception ex)
{
tx = ex;
} assertData(tx);
} public void testTop()
{
try
{
myStack.push("hello");
}
catch (Exception ex)
{ } String result = null; try
{
result = myStack.top();
}
catch (Exception ex)
{
Assert.fail();
} Assert.assertEquals("hello", result);
} public void testTop2()
{
Throwable tx = null; try
{
myStack.top(); Assert.fail();
}
catch (Exception ex)
{
tx = ex;
} assertData(tx);
} public void testDelete()
{
try
{
for (int i = 0; i < 10; i++)
{
myStack.push(i + "");
} myStack.delete(10);
}
catch (Exception ex)
{
Assert.fail();
}
} public void testDelete2()
{
Throwable tx = null; try
{
for (int i = 0; i < 10; i++)
{
myStack.push(i + "");
} myStack.delete(11); Assert.fail();
}
catch (Exception ex)
{
tx = ex;
} assertData(tx);
} private void assertData(Throwable tx)
{
Assert.assertNotNull(tx);
Assert.assertEquals(Exception.class, tx.getClass());
Assert.assertEquals("数组越界异常!", tx.getMessage());
} }
Junit3.8 Stack测试的更多相关文章
- Cactus借助Jetty测试Servlet
这是一个WebProject,但不需要web.xml,因为用不到它 首先是待测试的LoginServlet.java package com.jadyer.servlet; import java.i ...
- 第二十三篇 玩转数据结构——栈(Stack)
1.. 栈的特点: 栈也是一种线性结构: 相比数组,栈所对应的操作是数组的子集: 栈只能从一端添加元素,也只能从这一端取出元素,这一端通常称之为"栈顶": 向栈中添加元 ...
- SpringBoot笔记(7)
一.单元测试 1.JUnit5简介 Spring Boot 2.2.0 版本开始引入 JUnit 5 作为单元测试默认库 作为最新版本的JUnit框架,JUnit5与之前版本的Junit框架有很大的不 ...
- springboot单元测试 JUnit5
JUnit5简介 Spring Boot 2.2.0 版本开始引入 JUnit 5 作为单元测试默认库 JUnit 5官方文档 作为最新版本的JUnit框架,JUnit5与之前版本的JUnit框架有很 ...
- 【03】SpringBoot2核心技术-核心功能—数据访问_单元测试_指标监控
3.数据访问(SQL) 3.1 数据库连接池的自动配置-HikariDataSource 1.导入JDBC场景 <dependency> <groupId>org.spring ...
- 第14章 集合框架(1)-List集合的各种类
1.概述 1.1.Java集合框架的由来 1.2.什么是集合框架? 1.3.为什么需要集合框架 1.4.常用的框架接口规范 2.Vector类 2.1.存储原理 2.2.构造方法 2.3.常用方法 3 ...
- Java魔法堂:JUnit4使用详解
目录 1. 开 ...
- Java 异常处理机制和集合框架
一.实验目的 掌握面向对象程序设计技术 二.实验环境 1.微型计算机一台 2.WINDOWS操作系统,Java SDK,Eclipse开发环境 三.实验内容 1.Java异常处理机制涉及5个关键字:t ...
- C++学习之路--类的构建以及数据转换存储
注意理解下面的代码,数据的处理与转换. 头文件: #ifndef STACK_H #define STACK_H class Stack { struct Link { void* data; Lin ...
随机推荐
- RMI
Java RMI (Remote Method Invocation 远程方法调用)是用Java在JDK1.1中实现的,它大大增强了Java开发分布式应用的能力.Java作为一种风靡一时的网络开发语言 ...
- linux下拷贝整个目录
该命令的功能是将给出的文件或目录拷贝到另一文件或目录中,就如同DOS下的copy命令一样,功能非常强大. 语法:cp [选项] 源文件或目录 目标文件或目录 说明:该命令把指定的源文件复制到目标文件或 ...
- Android中常见的MVC模式
MVC模式的简要介绍 MVC是三个单词的缩写,分别为: 模型(Model),视图(View)和控制Controller). MVC模式的目的就是实现Web系统的职能分工. Model层实现系统中的业务 ...
- 注册表删除chrome插件
注册表,对于绝大部分人来说,都是一个比较陌生的东西.然而,我们的几乎所有软件都会在这里出现. 就最近一次,公司给每个员工的chrome浏览器绑定的一堆插件,并且无法删除.手动删除插件文件后,重启机器又 ...
- 计算几何基础——矢量和叉积 && 叉积、线段相交判断、凸包(转载)
转载自 http://blog.csdn.net/william001zs/article/details/6213485 矢量 如果一条线段的端点是有次序之分的话,那么这种线段就称为 有向线段,如果 ...
- 四种途径将HTML5 web应用变成android应用
作为下一代的网页语言,HTML5拥有很多让人期待已久的新特性.HTML5的优势之一在于能够实现跨平台游戏编码移植,现在已经有很多公司在移动 设备上使用HTML5技术.随着HTML5跨平台支持的不断增强 ...
- 证明:寝室分配问题是NPC问题
P.NP.NPC.NP-hard P:多项式时间能够解决的问题的集合,比如最短路径问题是集合P的一个元素,而最短路径问题本身又是一个集合,因此P是集合的集合. NP:多项式时间内能够验证的问题的集合. ...
- AspNet WebApi OData 学习
OData介绍:是一个查询和更新数据的Web协议.OData应用了web技术如HTTP.Atom发布协议(AtomPub)和JSON等来提供对不同应用程序,服务 和存储的信息访问.除了提供一些基本的操 ...
- 笨笨-歌词伴侣V1.2(酷狗KRC转LRC,LRC歌词批量下载)
最近由于某些热心博友在我CSDN博客上使用了我的软件,提出了一些建议,看到自己的成果有人使用并且提出了一些建议,焉有不高兴之理!刚好碰上最近研究UI界面,有了一个初步的框架,就顺手将歌词相关功能集 ...
- 【COCOS2DX-LUA 脚本开发之十二】Hybrid模式-利用AssetsManager实现在线更新脚本文件lua、js、图片等资源(免去平台审核周期)
本站文章均为李华明Himi原创,转载务必在明显处注明:(作者新浪微博:@李华明Himi) 转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/iphone-c ...