JUnit学习笔记
来源:互联网 发布:n个球放入m个盒子C语言 编辑:程序博客网 时间:2024/06/11 02:10
JUnit(单元测试)
JUnit的口号:keep the bar green to keep the code clean
1.单元测试不是为了证明您是对的,而是为了证明您没有错误。
2.测试用例(Test Case)是单元测试的一个很重要的方面。
3.Test Case 之间一定要保持完全的独立性,不允许出现任何的依赖关系。
4.DRY (Don't repeat yourself)
JUnit4
1.@Ignore 注解可用于修饰测试类与测试方法,当修饰测试类时,表示忽略掉类中的所有测试方法,当修饰测试方法时,表示忽略该测试方法。
2.参数化测试(@Parameters) 当一个测试类使用参数化运行器运行时,需要在类的声明处加上@RunWith(Parameterized.class)注解,表示该类将不使用JUnit内建的运行器运行,而使用参数化运行器运行,同时,在提供参数的方法上要使用@Parameters注解 来修饰,并且在测试类的构造方法中为各个参数赋值。
3.如果想要同时运行多个测试,需要使用两个注解:@RunWith(Suite.class)以级@Suite.SuiteClasses(),通过这两个注解分别指定使用Suite运行器来运行测试,其中的@SuiteClass中可以继续指定Suite,这样JUnit会再去寻找里面的测试类,一直找到能够执行的TestCase并且执行。
写测试类时,需要新建一个Source Folder,然后在这里面建与需要测试类所在包相同的包名,还需要加入JUnit的Jar包。
如下图所示:
我将要测试类com.junit下的Calculate类:
package com.junit;public class Calculate{public int add(int a, int b){return a + b;}public int delete(int a, int b){return a - b;}public int dvide(int a, int b) throws Exception{if (b == 0){throw new Exception("除数不能为零");}return a / b;}}
相当的在test下的com.junit包中新建TestCalculate类:
package com.junit;import org.junit.After;import org.junit.Assert;import org.junit.Before;import org.junit.BeforeClass;import org.junit.Test;public class TestCalculate{private Calculate cal;// 测试之前,只执行一次@BeforeClasspublic static void globalInit(){System.out.println("GlobalInit");}// 所有测试类运行之前@Beforepublic void init(){cal = new Calculate();System.out.println("init");}@Testpublic void testAdd(){int result = cal.add(3, 3);Assert.assertEquals(6, result);}@Testpublic void testDelete(){int result = cal.delete(3, 1);Assert.assertEquals(2, result);}@Test(expected = Exception.class)public void testDvide() throws Exception{int result = cal.dvide(6, 0);Assert.assertEquals(3, result);}// 所有测试类运行之后@Afterpublic void destory(){System.out.println("destory");}}
运行的结果:
再介绍下Suite的使用:
package com.junit;import org.junit.runner.RunWith;import org.junit.runners.Suite;@RunWith(Suite.class)@Suite.SuiteClasses({ TestCalculate.class })public class SuiteTest{}
- Junit 学习笔记
- JUnit学习笔记
- • Junit学习笔记
- JUnit学习笔记
- Junit学习笔记
- Junit学习笔记1
- Junit学习笔记
- Junit学习笔记
- Junit学习笔记_1
- JUnit Gossip学习笔记
- Junit学习笔记
- JUnit学习笔记
- JUnit学习笔记
- JUnit学习笔记
- junit学习笔记一
- Junit学习笔记
- Junit 4 学习笔记
- JUnit之学习笔记
- SQL存储过程分页若干方法
- AS3精辟代码若干--random
- 黑马程序员——java学习7(小日历制作)
- csdn apache+php+mysql在windows下的安装和配置
- 数据保存时,出现‘record not found or changed by another user’错误信息的解决办法
- JUnit学习笔记
- Hibernate之@Entity,@Table,@Id
- 【ImageView】图片自适应及android:scaleType属性
- Android开发中一些直接拿来用的代码片段
- 折腾人的 excel 计算公式
- JS操作JSON总结
- PHP导出 Excel表格数据
- Struts2(7):struts.xml中的<package>元素
- 提供一个Twitter的API(Python)