廖雪峰Java8JUnit单元测试-2使用JUnit-2异常测试
1.异常测试
对可能抛出的异常进行测试:
- 异常本身是方法签名的一部分:
* public static int parseInt(String s) throws NumberFormatException - 测试错误的输入是否导致特定的异常:
* Integer.parseInt(null)
* Integer.parseInt("")
* Integer.parseInt("xyz")
2.异常测试的方法:
- 使用try..catch (Exception e)捕获异常,但这样会编写许多try..catch代码
- expected测试异常,推荐
2.1示例1
package com.testList;
import org.junit.*;
import static org.junit.Assert.fail;
public class SequenceTest {
//使用try...catch
@Test
public void test1() throws Exception{
try {
Integer.parseInt(null);
fail("should throw java.lang.NumberFormatException");
}catch (NumberFormatException e){
System.out.println("pass");
}
}
//使用expected捕获异常
@Test(expected = NumberFormatException.class)
public void test2() throws Exception{
Integer.parseInt("p");
}
}

### 2.2示例2
Calculator.java
```#java
package com.testList;
public class Calculator {
public int calculator(String expression){
if (expression == null){
throw new NumberFormatException();
}
String[] ss = expression.split("\+");
int sum = 0;
for(String s:ss){
sum = sum + Integer.parseInt(s.trim());
}
return sum;
}
}
CalculatorTest.java
```#java
package com.testList;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import java.util.Calendar;
import static org.junit.Assert.*;
public class CalculatorTest {
Calculator calc;
@Before
public void setUp(){
calc = new Calculator();
}
@Test(expected = NumberFormatException.class)
public void testCalcWithEmptyString(){
int r = calc.calculator("");
}
@Test(expected =NumberFormatException.class)
public void testCalcAdd3Numbers(){
int r = calc.calculator(null);
}
@After
public void tearDown(){
calc = null;
}
}

3.总结
- 测试异常可以使用@Test(expected = Exception.class)
- 对可能发生的每种类型的异常进行测试
廖雪峰Java8JUnit单元测试-2使用JUnit-2异常测试的更多相关文章
- 廖雪峰Java8JUnit单元测试-2使用JUnit-4超时测试
1.超时测试 可以为JUnit的单个测试设置超时: 超时设置1秒:@Test(timeout=1000),单位为毫秒 2.示例 Leibniz定理:PI/4= 1 - 1/3 + 1/5 - 1/7 ...
- 廖雪峰Java8JUnit单元测试-2使用JUnit-1使用Before和After
1. @Before和@After 同一个单元测试内的多个测试方法: 测试前都需要初始化某些对象 测试后可能需要清理资源fileInputStream.close() @Test public voi ...
- 廖雪峰Java8JUnit单元测试-1JUnit简介-1JUnit测试
测试驱动开发(Test Driver Development) 1.使用main()方法测试的缺点: 只能有1个main()方法,不能把测试代码分离 没有打印出测试结果和期望结果,例如expected ...
- 廖雪峰Java8JUnit单元测试-2使用JUnit-3参数化测试
参数化测试: 可以把测试数据组织起来 用不同的测试数据调用相同的测试方法
- Junit的异常测试
方式1: @Test(expected = IndexOutOfBoundsException.class) public void empty() { new ArrayList<Object ...
- 廖雪峰Python电子书总结
函数 1.注意:函数的默认参数必须指向不可变对象 未修改前: def add_end(L=[]): L.append('END') return L 存在的问题:如果连续调用多次,会出现多个 'END ...
- 廖雪峰python教程的第一个疑问
函数的参数一节中提到: def add_end(L = []); L.append('END') return L 正常调用add_end时(也就是有参数传入时): >>> add_ ...
- 爬虫:把廖雪峰的教程转换成 PDF 电子书
写爬虫似乎没有比用 Python 更合适了,Python 社区提供的爬虫工具多得让你眼花缭乱,各种拿来就可以直接用的 library 分分钟就可以写出一个爬虫出来,今天就琢磨着写一个爬虫,将廖雪峰的 ...
- Python自学笔记-生成器(来自廖雪峰的官网Python3)
感觉廖雪峰的官网http://www.liaoxuefeng.com/里面的教程不错,所以学习一下,把需要复习的摘抄一下. 以下内容主要为了自己复习用,详细内容请登录廖雪峰的官网查看. 生成器 通过列 ...
随机推荐
- xcfe桌面快捷键整理
转载自:https://my.oschina.net/u/565351/blog/502018 commands custom <Alt>F1:xfce4-popup-applicatio ...
- C#/对线程的认识
1.线程的优点和缺点,以及什么时候来考虑使用线程.多线程可以使得程序响应更快,程序在进行其他任务的同时,线程也处于活动状态.当前没有处理任务的时候,可以把处理器的时间让给其他任务可以随时停止任务可以设 ...
- ngix请求转发
实际运用中,当我们有对用户隐藏真实url的需求时,可以使用ngix转发. 1.转发所有请求: location / { proxy_pass http://localhost:8080 ; } 2.转 ...
- mac系统访问windows共享文件夹
1. 打开finder 2. 找到前往 - 连接服务器 3. 打开后,输入smb://ip地址 点击连接 4. 选择共享文件夹 5. 点击好,之后就可以了,如下图
- JSF相关介绍
About JavaServer Faces technology simplifies building user interfaces for JavaServer applications. D ...
- open-falcon监控nginx
主要逻辑:通过lua nginx module的log_by_lua_file实时记录nginx请求数据,通过外部python脚本定时获取数据解析为Open-Falcon支持的数据类型. Nginx编 ...
- windows下配置下burpsuite的小方法。
1.下载破解版burpsuite和正版burpsuite. 2.安装正版burpsuite(免费版) 3.打开安装路径 4.把破解版的burp拷贝到安装路径下 5.该路径下应该有个burpsuite_ ...
- Visual Stdio2017 使用
1. 快捷键: https://www.cnblogs.com/happyzwt/p/7769129.html 2.
- 21. Wireless tools (无线工具 5个)
AircrackKismetNetStumblerinSSIDerKisMAC
- 16. Antimalware (反病毒 3个)
Malwarebytes反恶意软件是为Windows的恶意软件扫描程序. 作者声称使用各种技术来查找其他恶意软件扫描仪检测不到的恶意软件. 有一个有限选项的免费试用版和支持能够运行扫描计划的完整版本, ...