利用Junit4进行程序模块的测试,回归测试

①在你的工程里导入JUnit4的包

②右击创建JUnit测试类,在测试类中编写测试代码即可。

JUnit 目前需要掌握的有一下几点:

Fixture系列:BeforeClass,AfterClass,Before,After

普通测试:Ignore(忽视),Text(测试),Test(timeout = 1000)(限时测试),Test(expected = ArithmeticException.class)(异常测试)

特殊测试:批量参数测试,打包测试

③Fixture系列与普通测试例代码

[java] view plain

copy

1. package com.mikuscallion.main;

2.

3. import static org.junit.Assert.*;

4.

5. import org.junit.After;

6. import org.junit.AfterClass;

7. import org.junit.Before;

8. import org.junit.BeforeClass;

9. import org.junit.Ignore;

10. import org.junit.Test;

11. public class CalculatorTest {

12.     //测试对象

13.     Calculator calculator =new Calculator();

14.     //Fixture

15.     @BeforeClass

16.     public static void beforeClass(){

17.         System.out.println("在测试类初始化时,调用一次");

18.     }

19.     @AfterClass

20.     public static void afterClass(){

21.         System.out.println("在测试类运行结束时,调用一次");

22.     }

23.     @Before

24.     public void before(){

25.         System.out.println("执行任何测试代码前调用");

26.         calculator.clear();

27.     }

28.     @After

29.     public void after(){

30.         System.out.println("执行任何测试代码后调用");

31.     }

32.     //Test---------------------------------------------------------------------------------

33.     @Ignore

34.     //忽视测试

35.     public void testMultiply() {

36.         calculator.multiply(1);

37.         calculator.multiply(5);

38.         //断言结果

39.         assertEquals(5, calculator.getResult());

40.     }

41.     @Test(timeout = 1000)

42.     //限时测试

43.     public void limitTimeTest(){

44.         calculator.squareRoot(5);

45.     }

46.     @Test(expected = ArithmeticException.class)

47.     //异常测试

48.     public void exceptTest(){

49.         calculator.divide(0);

50.     }

51.     @Test

52.     public void testAdd() {

53.         calculator.add(1);

54.         calculator.add(2);

55.         assertEquals(3, calculator.getResult());

56.     }

57.     @Test

58.     public void testSubstract() {

59.         calculator.add(10);

60.         calculator.substract(2);

61.         assertEquals(8, calculator.getResult());

62.     }

63.     @Test

64.     public void testDivide() {

65.         calculator.add(8);

66.         calculator.divide(2);

67.         assertEquals(4, calculator.getResult());

68.     }

69.

70. }

④参数测试代码

[java] view plain

copy

1. package com.mikuscallion.main;

2.

3. import static org.junit.Assert.*;

4.

5. import java.util.Arrays;

6. import java.util.Collection;

7.

8. import org.junit.Test;

9. import org.junit.runner.RunWith;

10. import org.junit.runners.Parameterized;

11. import org.junit.runners.Parameterized.Parameters;

12.

13. @RunWith(Parameterized.class)

14. public class SquareTest {

15.     public Calculator calculator =new Calculator();

16.     public int param;

17.     public int result;

18.

19.     @Parameters

20.     public static Collection data(){

21.         //注意这种写法

22.         return Arrays.asList(new Object[][]{

23.                 {2, 4},

24.                 {0, 0},

25.                 {-3, 9},

26.         });

27.     }

28.     public SquareTest(int param, int result){

29.         this.param = param;

30.         this.result = result;

31.     }

32.     @Test

33.     public void testSquare() {

34.         calculator.square(param);

35.         assertEquals(result, calculator.getResult());

36.     }

37. }

⑤批量测试代码

[java] view plain

copy

1. package com.mikuscallion.main;

2.

3.

4. import org.junit.runner.RunWith;

5. import org.junit.runners.Suite;

6. import org.junit.runners.Suite.SuiteClasses;

7. @SuiteClasses({

8.     SquareTest.class,

9.     CalculatorTest.class,

10. })

11. @RunWith(Suite.class)

12. public class SuiteTest {

13.

14. }

⑥被测试类代码

[java] view plain

copy

1. package com.mikuscallion.main;

2. public class Calculator {

3.

4.         private static int result; // 静态变量,用于存储运行结果

5.

6.         public void add(int n){

7.             result = result + n;

8.         }

9.         public void substract(int n){

10.             result = result - n; //Bug: 正确的应该是 result =result-n

11.         }

12.         public void multiply(int n){

13.         } // 此方法尚未写好

14.         public void divide(int n){

15.         result = result / n;

16.         }

17.

18.         //

19.         public void square(int n){

20.             result = n * n;

21.         }

22.         public void squareRoot(int n){

23.             for (; ;) ; //Bug : 死循环

24.         }

25.         public void clear(){ // 将结果清零

26.             result = 0;

27.         }

28.         public int getResult(){

29.             return result;

30.         }

31. }

github链接:https://github.com/SuNNed/Junit4/blob/master/test.md

时间: 2024-08-21 14:18:13

利用Junit4进行程序模块的测试,回归测试的相关文章

java中利用Junit4进行程序模块的测试

今天讲讲如何利用ecl中的junit4进行程序模块的测试,实现对java程序的跟踪测评. 一.题目简介 我所测试的代码是以前写过的一个小项目-----小学四则运算自动出题程序.界面做的很简单,但是基本的功能都能实现,不过程序不是很完美,有些缺陷. 二.源码的github链接. https://github.com/Tsir/ClassTest/tree/master 三.所设计的模块测试用例.测试结果截图.操作如下: 步骤1:选中测试项目文件,点击右键选中JUnit测试用例,选中JUnit4,s

使用eclipse利用Junit4进行程序模块的测试

一.题目简介 通过用户输入年份和月份,然后在控制台显示该年该月的日历. 二.源码的github链接. https://github.com/zhangxinn/test/blob/master/PrintCalendar 三.所设计的模块测试用例.测试结果截图 首先新建一个项目叫JUnit_Test,我们编写一个Calculator类,然后对这些功能进行单元测试. //代码 第二步,将JUnit4单元测试包引入这个项目:在该项目上点右键,点“属性”,如图: 在弹出的属性窗口中,首先在左边选择“J

如何利用Pre.im分发iOS测试包

大众创新万众创业,在移动互联网的风口,移动APP开发与测试发展方兴未艾,受到了越来越多的重视.相较 iOS,Android 的开发环境更加开放.Android 开发者要测试应用时,只需发个 APK 安装包即可,但对于 iOS 来说,想要参与 App 测试却是件很复杂的事情. Apple在收购TestFlight后将其整合进iTunes Connect中,虽然能帮助iOS开发者邀请用户协助对 App 进行测试,但过程依旧复杂. 在这样的背景下,国内权威测试平台Testin推出了免费的APP内测分发

利用drozer进行Android渗透测试

一.安装与启动 1. 安装 第一步:从http://mwr.to/drozer下载Drozer (Windows Installer) 第二步:在Android设备中安装agent.apk adb install agent.apk 2. 启动 第一步:在PC上使用adb进行端口转发,转发到Drozer使用的端口31415 adb forward tcp:31415 tcp:31415 第二步:在Android设备上开启Drozer Agent 选择embedded server-enable

java ssh 框架下 利用junit4 spring-test进行单元测试

ssh框架下  由于bean实列 都交给spring 管理,要做单元测试就比较苦难,junit4 引入注解方便很多: 1. 加入依赖包 使用Spring的测试框架需要加入以下依赖包: JUnit 4 (官方下载:http://www.junit.org/) Spring Test (Spring框架中的test包) Spring 相关其他依赖包(不再赘述了,就是context等包) 2. 创建测试源目录和包 在此,推荐创建一个和src平级的源文件目录,因为src内的类都是为日后产品准备的,而此处

利用nodejs搭建服务器,测试AJAX

最近学习了AJAX一直没有进行过测试,前今天了解了Noejs搭建本地服务器下就尝试了一下.通过AJAX请求的方式获取HTTP服务器返回数据的代码 首先创建一个serve.js的文件.并写入以下代码. 1 var http=require("http"); 2 3 var server=http.createServer(function(req,res){ 4 5     if(req.url!=="/favicon.ico"){ 6 7         res.w

利用netcat进行网络吞吐量测试

最近工作过程中遇到一个问题:在linux现有命令的基础上(封闭只读系统),如何需要对产品的wifi模块进行吞吐量测试? 在进行测试前,我首先看了一下当前系统拥有的命令以及搜索相关资料, 发现使用nc这个命令,配合dd的时候能够进行吞吐量测试(局域网). 使用这种方法测试的优点:免去嵌入新的软件.缺点:只能粗略测出上下行带宽(吞吐量) 工具准备 1.dd for windows 2.netcat (windows版) 测试设备上传速度 PC端: nc -lvvp [port] | dd of=NU

利用 Traceview 精准定位启动时间测试的异常方法 (工具开源)

机智的防爬虫标识原创博客地址:http://www.cnblogs.com/alexkn/p/7095855.html博客求关注: http://www.cnblogs.com/alexkn 1.启动时间测试常用方案介绍 如何精确测试启动时间,其实这个问题可大可小,主要需要看团队对启动时间的测试精度要求,当启动时间测试误差需要精确到小几十毫秒时,很多问题都会暴露,因为其实目前很难有一种方式去评估数据的有效性.当前设备状态,CPU温度,内存,系统GC,研发人员的代码以及线程模式等,都有可能导致启动

利用Apache Bench进行压力测试(安装篇)

前言 API性能测试是企业级开发中非常重要的一环,API性能测试个人总结起来比较关注的两个点为: API在并发下是否会产生数据异常,比如秒杀系统的超买超卖 API极限情况下的QPS/TPS 目前比较流行的性能测试工具有LoaderRunner.Apache Bench.JMeter等,个人针对这三款性能测试工具都使用了一下,使用的感觉是: LoaderRunner是功能最强大的,压力测试后的各种报告什么都有,但是商用版本装一下时间比较长也比较麻烦,也有一定学习成本,上手用熟练需要一定时间 JMe