Junit3.8
Junit3.8中,测试Case必须继承TestCase
使用TestCase对类进行测试
public void testDevide(){
int result;
try {
result = cal.divide(15, 4);
Assert.assertEquals(3, result);
} catch (Exception e) {
e.printStackTrace();
Assert.fail();
}
}
public void testDivideByZero(){
int result = 0;
Throwable ex = null;
String msg = null;
try{
result = cal.divide(10, 0);
Assert.fail("test failed,divided by 0");
}catch(Exception e){
ex = e;
msg = e.getMessage();
}
Assert.assertNotNull(ex);
Assert.assertEquals("divided by 0", msg);
Assert.assertEquals(0, result);
}
使用Test Suite自动运行多个TestCase
public class TestAll extends TestCase {
public static Test suite(){
TestSuite ts = new TestSuite();
ts.addTestSuite(CaculatorTest.class);
ts.addTest(new RepeatedTest(new CaculatorTest("testDivideByZero"), 10));
return ts;
}
}
Junit4
Junit4中测试Case不需要继承TestCase,而是使用注解annotation来标注。
在一个测试类中,所有被@Test修饰的public void 方法都叫做TestCase。
@Test 标注测试方法 (public void)有属性expected和timeout
Expected:指定异常类,如果抛出异常则测试成功
@Test(expected=Exception.class)
public void testCaculatedByZero() throws Exception{
cal.divide(10, 0);
}
Timeout:如果测试时间超出timeout指定值,则测试失败
@Test(timeout=600)
public void testCaculator(){
int result = 0;
try{
Thread.sleep(500);
result = cal.divide(15, 3);
}catch(Exception ex){
Assert.fail();
}
assertEquals(5, result);
}
@Before 初始化变量
@After 测试方法之后执行操作
@BeforeClass 初始化全局变量 在所有方法之前执行
只能修饰public static void 并且没有参数的方法,该方法只执行一次。
@AfterClass 所有方法之后执行
@Ignore 忽略一个测试,使得测试不执行,可以修饰方法、类
Value:忽略的原因
@Ignore("not ready") @Test(expected=Exception.class)
public void testCaculatedByZero() throws Exception{
cal.divide(10, 0);
}
@RunWith(value=运行器.class) 以指定运行器运行测试
参数化运行测试类
@RunWith(value=Parameterized.class)
以测试套件运行
@RunWith(Suite.class)
@SuiteClasses({Test1.class,Test2.class,…})
@Parameters 修饰返回测试参数的方法
@Parameters
public static Collection prepareData(){
Object[][] data = {
{1,10,10},
{2,4,2},
{5,15,3},
{-1,4,-4},
{0,0,3}
};
return Arrays.asList(data);
}
参数化运行测试例子:
Junit Runners(运行器):
Junit.awtui.TestRunner.run(XXXTest.class);
Junit.swingui.TestRunner.run(XXXTest.class);
Junit.textui.TestRunner.run(XXXTest.class);
分享到:
相关推荐
3. Junit 的优点:由于 Junit 相对独立于所编写的代码,可以测试代码的编写可以先于实现代码的编写,XP 中推崇的 test first design 的实现有了现成的手段:用 Junit 写测试代码,写实现代码,运行测试,测试失败,...
JUnit 测试框架的使用 JUnit 是一个流行的单元测试框架,广泛应用于 Java 项目中,本文将详细介绍 JUnit 测试框架的使用,并提供了两个示例来帮助读者更好地理解和掌握 JUnit 的使用。 一、JUnit 测试框架的使用 ...
本实验“自动饮料机Junit测试”旨在帮助学生深入理解和应用单元测试,特别是在Java编程环境下。单元测试是一种针对程序代码最小可测试单元进行验证的方法,通常这个单元是函数或方法。Junit是Java领域广泛使用的单元...
例如,文件可能会讲解如何设置一个基本的JUnit测试类,通常这个类会继承自`junit.framework.TestCase`(对于较旧的JUnit版本)或者使用注解`@RunWith(JUnit4.class)`(对于JUnit 4及以上版本)。 测试类中的每个...
【Junit单元测试完整案例】深入解析 在软件开发中,单元测试是验证代码功能是否正确、独立单元是否按预期工作的关键步骤。Junit作为Java领域最常用的单元测试框架,为开发者提供了简单易用的API来进行测试。本案例...
Eclipse进行Junit测试 Eclipse 是一个功能强大且广泛使用的集成开发环境(IDE),Junit 是一个基于 Java 的单元测试框架。使用 Eclipse 进行 Junit 测试可以大大提高测试效率和质量。 一、Junit 简介 Junit 是一...
JUnit测试jar包通常包含了JUnit框架的核心库和其他可能的扩展或辅助库,使得开发人员可以在他们的项目中引入这些测试工具。这个压缩包很可能包含了JUnit的不同版本,例如JUnit4或JUnit5,以及可能的依赖如Hamcrest...
《Junit测试学习文档》 在软件开发过程中,单元测试是一项至关重要的工作,它能确保代码的正确性,提高代码质量,并为后续的维护和重构提供保障。Junit作为Java编程语言中最流行的单元测试框架,是每个Java开发者...
5. **断言结果**:在JUnit测试中,我们可以使用`assertEquals()`等断言方法,验证私有方法执行后的结果是否符合预期。 下面是一个简单的例子,展示如何使用JUnit测试私有方法: ```java import org.junit.Test; ...
本压缩包文件"javaweb中.java文件测试需要的框架(junit测试).rar"显然是为了帮助开发者理解如何在Java Web项目中使用JUnit进行测试。 **JUnit框架详解** JUnit是一个基于注解的测试框架,它的核心功能包括: 1....
JUnit是Java编程语言中最常用的单元测试框架之一,它允许开发者编写可执行的测试用例来验证代码的功能。在本文中,我们将深入探讨JUnit的核心概念、关键特性以及如何使用JUnit3进行测试。 首先,理解单元测试的概念...
在这个“junit测试案例程序”中,我们可以找到一些基本的JUnit测试用例示例,这对于初学者来说是极好的学习资源。 首先,JUnit的核心概念是测试类和测试方法。一个测试类通常对应于被测试的业务逻辑类,而测试方法...
下面将详细阐述JUnit测试的相关知识点。 1. **JUnit简介**: JUnit是由Ernst von Reiss和Kent Beck开发的一个开源项目,它是XUnit测试框架家族的一员,专为Java设计。JUnit提供了注解、断言、测试套件、定时器等...
Junit测试.mp4
JUnit 测试用例 calculate JUnit 测试用例 calculate 是一个简单的用例,旨在帮助掌握 JUnit 方法。该测试用例主要涉及到 JUnit 的基本使用、测试方法的编写、测试结果的分析等方面。 一、JUnit 简介 JUnit 是一...
junit3 junit4 api,单元测试的利器
这个"JUnit测试jar包.zip"文件很可能包含了JUnit库的jar文件,使得开发者能够在自己的项目中引入JUnit进行测试工作。 在Java开发中,单元测试是一种重要的软件质量保证手段,它通过编写小规模的独立测试代码来验证...
JUnit是Java编程语言中广泛使用的单元测试框架,由Erich Gamma和Kent Beck这两位软件设计大师共同创建。它为开发者提供了一种结构化的方法来验证代码的各个部分是否按照预期工作,确保软件的质量和稳定性。JUnit是...