用TestSuite管理Junit单元测试用例
因为在测试过程中可能不能同时run所有的测试用例,或者是想同时run不同的测试用例或所有的用例,那么我们就要维护一个公共的Suite,这个Suite可以添加TestSuite或一个单个用例(测试函数)。
TestCase->TestSuite,Testmethods->TestSuite
举例说明:
package calculor.Calculor;
import static org.junit.Assert.*;
import junit.framework.TestCase;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
public class CalcTest extends TestCase {
@Before
public void setUp() throws Exception {
}
@After
public void tearDown() throws Exception {
}
@Test
public void testAdd() {
//fail("Not yet implemented");
assertEquals(2, 2);
}
}
另外一个TestCase集合类
package calculor.Calculor;
import static org.junit.Assert.*;
import junit.framework.TestCase;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
public class TTmmTest extends TestCase {
public TTmmTest(){}
public TTmmTest (String name){
super(name);
}//注意这里添加了这个构造函数,因为要调用父类的构造函数,用于下面Suite添加该类的测试方法
@Before
public void setUp() throws Exception {
}
@After
public void tearDown() throws Exception {
}
@Test
public void testHelloworld() {
//fail("Not yet implemented");
assertEquals(2,2);
}
}
那么我们就可以对这两个不相关的测试类集合进行包装,就是建立一个TestSuite类,封装这些不相关的类,这对于我们大的项目来说是非常关键的,因为我们可能同时维护很多测试类,run回归测试用例等。
package calculor.Calculor;
import junit.framework.Test;
import junit.framework.TestSuite;
//import junit.sampling.*;
public class TestAll {
public static Test suite()
{
TestSuite suite =x new TestSuite("All tests from part1");//表明这个标识性东西
suite.addTestSuite(TTmmTest.class);
suite.addTestSuite(CalcTest.class);
suite.addTest(new TTmmTest("testHelloworld"));//这里可以添加单个的测试方法
return suite;
}
}
Tips:我们看到我们实际上增加了一个Test类,实际上Testsuite,TestCase都是实现了Test接口。
创建过程:TestRunner一开始现寻找测试类中的suite方法,找到了就加入testsuite
注意在编写测试用例的时候,要保持测试用例的独立性
一个原则,每条单元测试用例都必须独立运行,不能依靠其他测试用例,或者不能按照什么顺序运行才可以。如果依靠其他测试用例的话,会给调试带来非常大的麻烦,所以这点一定要记住。
貌似目前项目用到的Eclipse中新建Test Suite的向导是针对Junit3的,而且网上很多资料介绍Test Suite也都是Junit3的,这里简要介绍一下Junit4中Test Suite的使用方法。
一种是类似Junit3的方法:
import junit.framework.JUnit4TestAdapter;
import junit.framework.Test;
import junit.framework.TestSuite;
Junit3中是直接suite.addTest(Test1.class),Junit4中需要用JUnit4TestAdapter来转换一下。TestSuite中也可以添加TestSuite,方法是一样的,即suite.addTest(new JUnit4TestAdapter(TestSuite2.class));
另一种是使用标注的方法:
import junit.testcase.JUnitTestCase;
import junit.testcase.TestCase2;
import org.junit.runner.RunWith;
来看看一个例子:
在这个例子中,您并没有看到任何的TestSuite,事实上,若是您没有供给任何的TestSuite,TestRunner会本身建树一个,然後这个 TestSuite会应用反射(reflection)主动找出testXXX()办法。
若是您要自行生成TestSuite,则在持续TestCase之後,供给静态的(static)的suite()办法,例如:
return new TestSuite(MathTool.class);
}
若是您没有供给任何的TestSuite,则TestRunner就会像上方如许主动为您建树一个,并找出testXXX()办法,您也可以如下面定义 suite()办法:
TestSuite suite = new TestSuite(MathTool.class);
suite.addTest(new MathToolTest("testGcd"));
return suite;
}
JUnit并没有规定您必然要应用testXXX()如许的体式格式来定名您的测试办法,若是您要供给本身的办法(当然JUnit 激劝您应用testXXX()如许的办法名称),则可以如上撰写,为了要可以或许应用建构函式供给测试办法名称,您的TestCase必须供给如下的建构函 式:
super(testMethod);
}
若是要参加更多的测试办法,应用addTest()就可以了,suite()办法传回一个TestSuite物件,它与 TestCase都实作了Test介面,TestRunner会调用TestSuite上的run()办法,然後TestSuite会将之委托给 TestCase上的run()办法,并履行每一个testXXX()办法。
除了组合TestCase之外,您还可以将数个TestSuite组合在一路,例如:
TestSuite suite= new TestSuite();
suite.addTestSuite(TestCase1.class);
suite.addTestSuite(TestCase2.class);
return suite;
}
如此之来,您可以一次运行所有的测试,而不必个此外运行每一个测试案例,您可以写一个运行全部测试的主测试,而在应用TestRunner时呼唤 suite()办法,例如:
TestCase与TestSuite都实作了Test介面,其运行体式格式为 Command 模式 的一个实例,而TestSuite可以组合数个TestSuite或TestCase,这是 Composite 模式 的一个实例。
相关推荐
Junit4是一款广泛使用的Java单元测试框架,它使得开发者能够方便地编写和运行测试用例,从而验证代码的正确性。本教程将深入探讨Junit4测试用例的使用,帮助你理解和实践其核心概念。 一、Junit4简介 Junit4是JUnit...
每个单元测试用例相对独立,由Junit 启动,自动调用。不需要添加额外的调用语句。 添加,删除,屏蔽测试方法,不影响其他的测试方法。 开源框架都对JUnit 有相应的支持。 4 测试方法注意事项 必须是public修饰的,...
Junit作为Java编程语言中最常用的单元测试框架,为开发者提供了简洁、高效的测试工具。本实例将深入探讨Junit测试的基本用法,包括简单单元测试和综合测试的实现。 一、Junit简介 Junit是由Ernst Berg和Kent Beck...
在Java编程领域,JUnit是一个广泛使用的单元测试框架,它使得开发者能够编写可重复运行的测试用例,确保代码的质量和稳定性。"JUnit in Java:真正的测试用例实战"这一主题涵盖了如何有效地使用JUnit进行测试实践的...
在 JUnit 中,可以通过 `TestSuite` 类或使用 `@RunWith` 和 `@Suite` 注解来定义测试套件。 #### 三、JUnit单元测试的使用方法 1. **安装JUnit** 安装 JUnit 相对简单,只需将 JUnit 的 `.jar` 文件添加到项目...
"软件单元测试——JUnit使用" 软件单元测试是软件开发过程中的一种测试方法,它是指对软件中的最小单元进行测试,以确保软件的可靠性和正确性。JUnit是一个流行的Java测试框架,广泛应用于软件单元测试中。 在本...
总的来说,熟练掌握JUnit、Hamcrest和TestSuite的使用,能帮助开发者编写出高效、可读性强的单元测试,从而提升软件质量。而遵循良好的测试原则,可以确保测试的有效性和可靠性,为项目的稳定性和持续改进打下坚实...
在Eclipse中使用JUnit4进行单元测试是一种常见的Java开发实践,它可以帮助开发者确保代码的正确性和稳定性。单元测试是软件开发中的重要环节,通过编写针对代码各个独立模块的测试用例,可以验证代码功能是否按预期...
在 JUnit 框架中,TestSuite 用来聚合多个测试用例(TestCase),TestResult 收集所有测试用例执行后结果。Test 接口是这个包的关键所在,建立了 TestCase 和 TestSuite 之间的关联,同时为整个框架做了扩展预留。 ...
"Junit单元测试实验报告.pdf" 本实验报告的主要目的是掌握Junit单元测试的方法和技术,并且在Eclipse中进行Junit...本实验报告主要介绍了JUnit单元测试的方法和技术,并且展示了如何使用JUnit测试框架来进行单元测试。
标题中的“junit测试”指的是Java编程语言中的一个单元测试框架——JUnit。JUnit是一个开源的、基于Java的测试框架,它使得开发人员能够编写可重复运行的测试用例,以验证代码的功能和行为。这个框架在敏捷开发和...
JUnit是Java编程语言中最常用的单元测试框架之一,它允许开发者编写可重复运行的测试用例,以确保代码的功能正确性。本资料“JUnit测试用例编写深度剖析”着重讲解了如何高效、深入地利用JUnit进行软件质量保障。 ...
JUnit是Java编程语言中最常用的单元测试框架之一,它使得开发者能够编写可重复执行的测试用例,以确保代码的功能正确性。单元测试是软件开发过程中的关键环节,它允许程序员在编码阶段就发现并修复问题,而不是等到...
【使用JUnit进行单元测试】 单元测试是软件开发过程中的重要环节,它主要目的是验证程序的各个独立组件(如方法或类)是否按照预期工作。JUnit是Java编程语言中最常用的单元测试框架,它允许开发者创建和运行针对...
在“22_android下junit测试框架配置.avi”这个视频文件中,很可能是详细讲解了如何在Android项目中配置和使用JUnit进行单元测试,包括添加依赖、创建测试类、编写测试方法,以及如何运行和查看测试结果。观看这个...
JUnit是Java编程语言中广泛使用的单元测试框架,它允许开发者编写可重复执行的测试用例,以验证代码的各个部分是否按预期工作。本资料包提供了进行JUnit单元测试所需的必要组件。 `junit-4.12.jar` 是JUnit 4.12...
JUnit是Java编程语言中最常用的单元测试框架之一,它允许开发者编写可重复运行的测试用例,以确保代码的正确性和稳定性。单元测试是软件开发过程中的一个重要环节,它旨在对程序中的最小可测试单元——通常是单个...
JUnit是Java编程语言中最常用的单元测试框架之一,它允许开发者编写可执行的测试用例来验证代码的功能。单元测试是对程序中的最小可测试部分进行检查,通常是一个方法或类的行为。JUnit通过提供一种结构化的、易于...
JUnit 是一个广泛使用的Java编程语言的单元测试框架,它的核心目标是帮助开发者对代码进行单元测试,确保每个独立的代码单元都能按预期工作。单元测试通常被视为白盒测试,因为它涉及对代码内部逻辑的深入理解。 ...