package com.wangjialin.junit.stack;
import junit.framework.Assert;
import android.test.AndroidTestCase;
import com.wangjialin.junit.service.Stack;
/**
* 测试类必须要继承于AndroidTestCase父类
*
* 在junit 3.8中,测试方法需要满足如下原则:
*
* 1,单元测试方法需要申明为public类型;
* 2,单元测试方法的返回值类型为void;
* 3,按照JUnit3的规范要求单元测试方法的方法命名需要以test开头;
* 4,单元测试方法的参数必须为空;
* 5,单元测试方法最好申明向单元测试框架抛出异常;
*/
public class StackTest extends AndroidTestCase {
private Stack myStack;
@Override
public void setUp() throws Exception
{
myStack = new Stack();
}
/**
* 测试基本的入栈操作
*/
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);
}
/**
* 测试入栈操作中栈满的情况
*/
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);
}
}
/**
* 测试入栈操作中栈溢出的情况
*/
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);
}
/**
* 删除Stack中特定数量的元素
*/
public void testDelete()
{
try
{
for (int i = 0; i < 10; i++)
{
myStack.push(i + "");
}
myStack.delete(10);
}
catch (Exception ex)
{
Assert.fail();
}
}
/**
* 删除Stack中的元素,但此时删除的个数多余实际栈中的数量
*/
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);
}
/**
* 断言的处理方法
* @param tx
*/
private void assertData(Throwable tx)
{
Assert.assertNotNull(tx);
Assert.assertEquals(Exception.class, tx.getClass());
Assert.assertEquals("数组越界异常!", tx.getMessage());
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
Android开发三剑客 UML、模式与测试 源码 (932个子文件)
libstdc++.a 8B
libstdc++.a 8B
libstdc++.a 8B
QueryService.aidl 86B
QueryService.aidl 86B
QueryService.aidl 86B
QueryService.aidl 86B
QueryService.aidl 86B
QueryService.aidl 86B
QueryService.aidl 86B
QueryService.aidl 86B
QueryService.aidl 86B
QueryService.aidl 86B
QueryService.aidl 86B
QueryService.aidl 86B
resources.ap_ 11KB
resources.ap_ 11KB
resources.ap_ 11KB
resources.ap_ 10KB
resources.ap_ 10KB
resources.ap_ 10KB
resources.ap_ 10KB
resources.ap_ 10KB
resources.ap_ 10KB
resources.ap_ 10KB
resources.ap_ 10KB
resources.ap_ 10KB
resources.ap_ 10KB
resources.ap_ 10KB
resources.ap_ 10KB
JUnitLifeCycle.apk 64KB
JavaInvokeCPP.apk 19KB
JavaInvokeCPP.apk 19KB
JavaInvokeCPP.apk 19KB
remoteServiceClient.apk 15KB
remoteServiceClient.apk 15KB
JUnitTestStack.apk 15KB
JUnitTestSuite.apk 15KB
JUnitTestSuite.apk 15KB
JUnitTestFilesystem.apk 14KB
JUnitLifeCycle.apk 14KB
remoteService.apk 14KB
remoteService.apk 14KB
JUnitTestArray.apk 14KB
JUnitTestPrivateMethod.apk 14KB
Android.mk.bak 748B
Android.mk.bak 748B
Android.mk.bak 748B
proguard.cfg 1KB
proguard.cfg 1KB
proguard.cfg 1KB
proguard.cfg 1KB
proguard.cfg 1KB
proguard.cfg 1KB
proguard.cfg 1KB
proguard.cfg 1KB
proguard.cfg 1KB
proguard.cfg 1KB
proguard.cfg 1KB
proguard.cfg 1KB
StackTest.class 3KB
CalculatorTest.class 3KB
CalculatorTest.class 2KB
MainActivity.class 2KB
MainActivity.class 2KB
MainActivity.class 2KB
MainActivity.class 2KB
FileSystemTest.class 2KB
CalculatorAnotherTest.class 2KB
CalculatorAnotherTest.class 2KB
SweetWord.class 2KB
QueryService$Stub.class 2KB
QueryService$Stub.class 2KB
QueryService$Stub.class 2KB
QueryService$Stub.class 2KB
QueryService$Stub.class 2KB
QueryService$Stub.class 2KB
QueryService$Stub.class 2KB
QueryService$Stub.class 2KB
CompositeTest.class 2KB
CompositeTest.class 2KB
ArrayTest.class 2KB
CalculatorWithPrivateMethodTest.class 2KB
QueryService$Stub$Proxy.class 2KB
QueryService$Stub$Proxy.class 2KB
QueryService$Stub$Proxy.class 2KB
QueryService$Stub$Proxy.class 2KB
QueryService$Stub$Proxy.class 2KB
QueryService$Stub$Proxy.class 2KB
QueryService$Stub$Proxy.class 2KB
QueryService$Stub$Proxy.class 2KB
StrategyClient.class 2KB
CARPClient.class 1KB
CalculatorTest.class 1KB
CalculatorTest.class 1KB
HelloJunitActivity.class 1KB
HelloJunitActivity.class 1KB
FlyweightTest.class 1KB
MainActivity$StudentConnection.class 1KB
MainActivity$StudentConnection.class 1KB
共 932 条
- 1
- 2
- 3
- 4
- 5
- 6
- 10
资源评论
- jackyramos2016-04-18好东西。练习
freedom_ding
- 粉丝: 2
- 资源: 14
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 全卷积网络基于voc2012数据集简单pytorch实现
- pycharm的一些介绍-用于更好的学习python
- 基于C++的程序设计大赛天梯赛L2答案(天梯赛)
- 基于python实现的三次样条插值和均值插值法实现
- Python语言教程2-python批量图片大小处理-多文件夹
- Python语言教程1-python批量图片重命名,将后缀某几个不想要的字去除
- Space Combat Kit 太空战斗套件Unity游戏开发插件资源unitypackage C#
- Universal Device Preview 通用设备预览Unity游戏开发插件资源unitypackage
- Paladin Anim Set 圣骑士动画集Unity游戏动作动画插件资源unitypackage
- 计算机财务管理期末考报表部分题目及答案.doc
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功