accuracy test(结果准确性测试)

  例如,Assert.assertEquals(expected, actual)。

  如果结果不符合期望则产生failure。说明程序逻辑有问题。

  failure test(抛出异常测试)

  expected属性用来指示期望抛出的异常类型。例如,@Test(expected = IllegalArgumentException.class)。

  如果结果不符合期望则产生failure。说明程序逻辑有问题。

  stress test(运行时间测试)

  timeout属性用来指示时间上限,单位是毫秒。例如,@Test(timeout = 300)。

  如果超时则产生error。说明程序本身性能达不到要求。

  

  举个例子

  

 package edu.zju.cst.Student;

 public class Student {
private String name; public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public String speak(String stm) {
try {
Thread.sleep(400);
} catch (InterruptedException e) {
e.printStackTrace();
} return name + ": " + stm;
}
}

Student.java

 package edu.zju.cst;

 import org.junit.After;
import org.junit.Before;
import org.junit.Test; import edu.zju.cst.Student.Student;
import junit.framework.Assert; public class StudentAccuracyTest {
private Student student; @Before
public void setUp() {
student = new Student();
student.setName("Tom");
} @Test
public void testSpeak() {
String expected = "Tom: hello";
String actual = student.speak("hell");
Assert.assertEquals(expected, actual);
} @After
public void tearDown() { }
}

StudentAccuracyTest.java

 package edu.zju.cst;

 import org.junit.After;
import org.junit.Before;
import org.junit.Test; import edu.zju.cst.Student.Student; public class StudentFailureTest {
private Student student; @Before
public void setUp() {
student = new Student();
student.setName("Tom");
} @Test(expected = IllegalArgumentException.class)
public void testSpeak() throws IllegalArgumentException {
student.speak("hell");
} @After
public void tearDown() { }
}

StudentFailureTest.java

 package edu.zju.cst;

 import org.junit.After;
import org.junit.Before;
import org.junit.Test; import edu.zju.cst.Student.Student; public class StudentStressTest {
private Student student; @Before
public void setUp() {
student = new Student();
student.setName("Tom");
} @Test(timeout = 300)
public void testSpeak() {
student.speak("hell");
} @After
public void tearDown() { }
}

StudentStressTest.java

 package edu.zju.cst;

 import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses; @RunWith(Suite.class)
@SuiteClasses({StudentAccuracyTest.class, StudentFailureTest.class,
StudentStressTest.class})
public class TestSuite { }

TestSuite.java

  

  参考资料

  JUnit单元测试的几个规律总结

  JUnit4:Test注解的两个属性:expected和timeout

最新文章

  1. HIVE 在执行大量数据JOIN的时候,容易产生内存不足的情况
  2. 【GoLang】GoLang struct 使用
  3. 利用OData轻易实现串流数据的可视化
  4. debian系统安装Thinkpad T410s的无线网卡驱动:centrino Advanced-N 6200 2x2 AGN
  5. Owin管道与asp.net管道模型
  6. c++内存分配
  7. c# 为什么要用 get set 属性
  8. 不创建类将json数据转换
  9. 微端游戏启动器launcher的制作(序篇)
  10. php实现留言板功能
  11. 来谈谈JAVA面向对象 - 鲁班即将五杀,大乔送他回家??
  12. 下载Android源代码编译错误总结
  13. python数据类型分类
  14. window10安装黑苹果
  15. 关于微服务、SOA、以及API的理解
  16. 直接用php.exe命令还执行php程序跟直接在网页上访问php程序的区别
  17. 04 - django的路由层 1
  18. How to bind a Command on a ContextMenu within a DataTemplate using MVVM
  19. 二进制拆位(贪心)【p2114】[NOI2014]起床困难综合症
  20. c语言简单实现telnet客户端

热门文章

  1. SQLServer语言之DDL,DML,DCL,TCL
  2. 读SRE Google运维解密有感(一)
  3. centos中创建自动备份Mysql脚本任务并定期删除过期备份
  4. TCP/IP五层层次模型
  5. LoadRunner性能测试入门教程
  6. LeetCode(49): 字母异位词分组
  7. LeetCode(47):全排列 II
  8. 深度学习Bible学习笔记:第二、三章 线性代数 概率与信息论
  9. Splay-Tree总结一:模拟队列
  10. 2017-2018-2 20155309 南皓芯 Exp5 MSF基础应用