博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JUnit小整理
阅读量:5799 次
发布时间:2019-06-18

本文共 2034 字,大约阅读时间需要 6 分钟。

hot3.png

    JUnit是java单元测试工具。

    一、在项目中构建单元测试的一些规则:‘

        1.新建一个源代码目录来存放我们的测试代码,通常命名为:test

        2.测试类的包应该和测试类保持一致。

        3.测试单元中的每个方法必须可以单独测试,测试方法不能有任何的依赖。

        4.测试方法必须使用public void 经行修饰,不能带任何的参数。

        5.测试方法使用test作为方法的前缀。【不是必须的】

        6.测试类使用Test类作为类名的后缀。【不是必须的】

        注意:[eclipse]通常可以直接在测试类上面,单击右键来创建一个JUnitl测试类,eclipse会自动生成与测试类相对应             的包名。测试方法等以上规则)

    二、对于JUnit的测试结果说明

        1.Failure一般由单元测试使用的断言方法判断失败所引起的,这表示测试点发现了问题,那程序输出的结果和我们预期的结果不一样造成。

        2.error是由代码异常引起的,它可以产生于测试代码本身的错误,也可以是被测试代码中的一个隐藏的bug。

        3.测试用例是用来证明你没有错,而不是用来证明你是对的。

    三、@Test属性

        1.@Test(expected = XX.class) 捕获异常。如果程序捕获达到相对应的XX.class异常,那么程序也表示成功。如果出             现其他异常,则会报错。

        2.@Test(timeout = 毫秒)测试代码块的运行时间。当到达该时间时,如果程序还没执行完成,那么程序也将退出。

    四、测试套测 @RunWith(XX.class)

        1.测试套件就是组织测试类一起运行的入口类。

            a).写一个作为测试套件的入口类,这个类里面不包含其他的方法。

            b).更改测试运行器XX.class.

            c).将要测试的类作为数组传入到 @Suite.SuiteClasses({test1.class,test2.class.....  }),

@RunWith(Suite.class)@Suite.SuiteClasses({TaskTest1.class,TaskTest2.class})public class SuiteTest {    //不可以包含其他方法}

   五、JUnit中的参数化设置

        1.更改默认的测试运行器为@RunWith(XX.class)

        2.声明变量来保存预期值和结果值。

        3.声明一个返回值为Collection的公共静态方法,并使用@Parameters进行修饰。

        4.为测试类声明一个带参数的公共构造函数并在其中为声明变量赋值。

import static org.junit.Assert.*;import java.util.Arrays;import java.util.Collection;import org.junit.Test;import org.junit.runner.RunWith;import org.junit.runners.Parameterized;import org.junit.runners.Parameterized.Parameters;import com.sun.org.glassfish.gmbal.ParameterNames;/** * @author 作者 E-mail: xuebinlu@163.com* @version 创建时间:2015年12月1日 下午9:31:47 * 对于最上面的import static 静态导入,这个和平时的import导入的区别在于,前者导入以后,在当前类下不用再使用类名调用,直接调用导入类的静态方法就行,而后者这需要通过导入类的类名来调用静态方法。 */@RunWith(Parameterized.class)public class ParameterTest {	int expected = 0;	int input1 = 0;	int input2 = 0;		@Parameters	public static Collection
 t(){ return Arrays.asList(new Object[][]{ {6,1,5}, {5,2,3} }); } public ParameterTest(int expected, int input1, int input2) { super(); this.expected = expected; this.input1 = input1; this.input2 = input2; } @Test public void test() { assertEquals(expected,new Calculate().add(input1, input2)); }}

转载于:https://my.oschina.net/u/2321816/blog/538211

你可能感兴趣的文章
spring-boot支持websocket
查看>>
菜鸟笔记(一) - Java常见的乱码问题
查看>>
移动web端自定义tap与模拟hover效果
查看>>
[译] Java 8 Nashorn 教程
查看>>
我理想中的前端工作流
查看>>
记一次Git异常操作:将多个repository合并到同一repository的同一分支
查看>>
CodeIgniter 3.0 新手捣鼓源码(一) base_url()
查看>>
Chrome 广告屏蔽功能不影响浏览器性能
查看>>
常用Linux系统优化脚本
查看>>
国内域名商.wang总量TOP14统计报告(7月17日)
查看>>
CentOS下Yum安装Mysql和JDK和tomcat
查看>>
查看eclipse 运行时的命令行
查看>>
十大编程算法
查看>>
discuz搜索取消searchid关键字
查看>>
【转】python引用DLL文件
查看>>
请你相信我!!!
查看>>
CentOS 7 两步安装启动Mysql(mariadb)
查看>>
maven error: Duplicate fragment name
查看>>
把bitmap保存成 BMP的格式 并且位深度为1
查看>>
ZXing二维码
查看>>