junit基础篇、中级篇、高级篇实例-代码

学习文章:

http://blog.csdn.net/andycpp/article/details/1327147

http://wenku.baidu.com/link?url=C27gDEj0l-AyPuyUOOYJaezxGF-U-mozQbjlA-R9apKXdw8h-GV3VoPzS4P4WADISon7615JCLfSpMjtuiqIVcBWJ0o7icgKk_2Qi2jF0yq

实例代码目录结构:

Calculator.java:

 1 public class Calculator{
 2     private static int result;//静态变量,用于存储运行结果
 3
 4     public void add(int n){
 5         result = result+n;
 6     }
 7
 8     public void substract(int n){
 9         result = result-1;//bug:之前应该是 result = result-n
10     }
11
12     public void multiply(int n){
13
14     }//此方法尚未写好
15
16     public void divide(int n){
17         result = result/n;
18     }
19
20     public void square(int n){
21         result = n*n;
22     }
23
24     public void squareRoot(int n){
25         for(;;){}  //bug:死循环
26     }
27
28     public void clear(){
29         result = 0;
30     }
31
32     public int getResult(){
33         return result;
34     }
35 }

CalculatorTest.java:

 1 import static org.junit.Assert.*;
 2
 3 import org.junit.After;
 4 import org.junit.Before;
 5 import org.junit.Ignore;
 6 import org.junit.Test;
 7
 8
 9 public class CalculatorTest {
10
11     private static Calculator calculator = new Calculator();
12
13     @Before
14     public void setUp() throws Exception {
15         calculator.clear();
16     }
17
18     @After
19     public void tearDown() throws Exception {
20     }
21
22     @Test
23     public void testAdd() {
24         calculator.add(2);
25         calculator.add(3);
26         assertEquals(5,calculator.getResult());
27     }
28
29     @Test
30     public void testSubstract() {
31         calculator.add(10);
32         calculator.substract(2);
33         assertEquals(8,calculator.getResult());
34     }
35
36     @Ignore("Multiply() Not yet implemented")
37     @Test
38     public void testMultiply() {
39
40     }
41
42     @Test
43     public void testDivide() {
44         calculator.add(8);
45         calculator.divide(2);
46         assertEquals(4,calculator.getResult());
47     }
48
49     @Test(timeout = 1000)
50     public void squareRoot(){
51         calculator.squareRoot(4);
52         assertEquals(2,calculator.getResult());
53     }
54
55     @Test(expected = ArithmeticException.class)
56     public void divideByZero(){
57         calculator.divide(0);
58     }
59 }

执行结果,"failure Trace"报错或运行失败原因:

(1)squareRoot超时,报错

(2)testSubstract用例失败

(3)testMultiply忽略运行

执行单个用例:

选中用例,右键点击“Run”

时间: 2024-10-30 04:32:34

junit基础篇、中级篇、高级篇实例-代码的相关文章

软件测试——JUnit基础

软件测试——JUnit基础 1. 综述 之前(很久了…)说过JUnit的安装和使用,但其实没有讲JUnit的写法,今天写写JUnit的基础. 博客链接:在Eclipse中使用JUnit4进行单元测试(初级篇) 博客链接:在Eclipse中使用JUnit4进行单元测试(中级篇) 博客链接:在Eclipse中使用JUnit4进行单元测试(高级篇) 2. JUnit基础 一段简单的代码 1 package testing; 2 3 import static org.junit.Assert.*; 4

Spark学习体系整理(基础篇、中级篇、高级篇所涉及内容)

新手刚开始学习比较迷茫,参考下面,然后找相关资料学习 1 Spark基础篇      1.1 Spark生态和安装部署          在安装过程中,理解其基本操作步骤.          安装部署            Spark安装简介            Spark的源码编译            Spark Standalone安装            Spark Standalone HA安装            Spark应用程序部署工具spark-submit      

PHP注入大全,分低级篇,中级篇,高级篇

谨以此献给黑客x档案的新手们 前言:现在的网络,最流行的攻击手段有两种,一种是缓冲区溢出攻击,一种是SQL注入,相对而言,最流行的还是脚本注入,而脚本注入漏洞更是风靡黑客界.不管是老鸟还是新起步的小菜,都会为它那巨大的威力和灵活多变的招式所着迷! 正是因为注入攻击的流行,使的市面上的注入工具层出不穷!比较出名的有小竹的NBSI.教主的HDSI和啊D的注入工具等等!这大大方便的小菜们掌握注入漏洞!可是,工具是死的,注入的手法却是活的,能否根据实际情况灵活地构造SQL注入语句,得到自己想要的信息,是

SVN版本库的备份、还原、移植(初级篇、中级篇和高级篇)

版本库数据的移植:svnadmin dump.svnadmin load 导出: $svnlook youngest myrepos //查看到目前为止最新的版本号 $svnadmin dump myrepos > dumpfile //将指定的版本库导出成文件dumpfile 导入: $svnadmin load newrepos < dumpfile 中级篇: $svnadmin dump myrepos –r 23 >rev-23.dumpfile           //将ver

在Eclipse中使用JUnit4进行单元测试(初级篇、中级篇、高级篇)

本文转载自以下 初级篇: http://blog.csdn.net/andycpp/article/details/1327147 中级篇: http://blog.csdn.net/andycpp/article/details/1327346 高级篇: http://blog.csdn.net/andycpp/article/details/1329218

运维学python之爬虫高级篇(六)scrapy模拟登陆

上一篇介绍了如何爬取豆瓣TOP250的相关内容,今天我们来模拟登陆GitHub. 1 环境配置 语言:Python 3.6.1 IDE: Pycharm 浏览器:firefox 抓包工具:fiddler 爬虫框架:Scrapy 1.5.0 操作系统:Windows 10 家庭中文版 2 爬取前分析 分析登陆提交信息分析登陆信息我使用的是fiddler,fiddler的使用方法就不作介绍了,大家可以自行搜索,首先我们打开github的登陆页面,输入用户名密码,提交查看fiddler获取的信息,我这

《C#网络编程高级篇之网页游戏辅助程序设计(扫描版)》

<C#网络编程高级篇之网页游戏辅助程序设计>通过编写C#网络编程语言中具有代表性的实例,向读者深入细致地讲解了如何利用C#语言进行网页游戏辅助程序设计.本书通过大量的代码引导读者一步步学习和掌握C#的网络应用编程的方法和网页游戏辅助程序的设计技术. <C#网络编程高级篇之网页游戏辅助程序设计>涉及的领域包括多线程编程技术.socket套接字编程.tcp协议编程.http协议编程.远程控制技术.木马技术.模拟键盘和鼠标技术.网页游戏辅助程序设计技术等. <C#网络编程高级篇之网

25 个增强iOS应用程序性能的提示和技巧 应用程序性能的提示和技巧 — 中级篇 中级篇

在开发iOS应用程序时,让程序具有良好的性能是非常关键的.这也是用户所期望的,如果你的程序运行迟钝或缓慢,会招致用户的差评.然而由于iOS设备的局限性,有时候要想获得良好的性能,是很困难的.在开发过程中,有许多事项需要记住,并且关于性能影响很容易就忘记.这就是为什么我要写这篇文章!本文收集了25个关于可以提升程序性能的提示和技巧.目录 目录我把性能优化技巧分为3个不同的等级:初级.中级和高级:中级在性能优化时,当你碰到一些复杂的问题,应该注意和使用如下技巧:9. 重用和延迟加载View10. 缓

FreeRTOS高级篇5---FreeRTOS队列分析

FreeRTOS提供了多种任务间通讯方式,包括: 任务通知(版本V8.2以及以上版本) 队列 二进制信号量 计数信号量 互斥量 递归互斥量 其中,二进制信号量.计数信号量.互斥量和递归互斥量都是使用队列来实现的,因此掌握队列的运行机制,是很有必要的.      队列是FreeRTOS主要的任务间通讯方式.可以在任务与任务间.中断和任务间传送信息.发送到队列的消息是通过拷贝实现的,这意味着队列存储的数据是原数据,而不是原数据的引用.先看一下队列的数据结构: typedef struct Queue