当前位置:首页 » 操作系统 » junit源码

junit源码

发布时间: 2024-01-06 10:18:55

❶ Junit4中怎样随心所欲的执行Test

使用的是junit4.4,想要有选择性的执行TestCase中的Test,是需要自己扩展junit4.4的API的。junit4.8的版本中,加入了一个Runner:Categories,可以实现只跑特定分类的Test。现在通过代码举例来比较两个版本中批量执行Test的差别.
public class TestOne {

@Test
public void testOne1(){
System.out.println("TestOne 1");
}

@Category({RunCases.class}) ----Junit4.8中才有的注解
@Test
public void testOne2(){
System.out.println("TestOne 2");
}
}
public class TestTwo {

@Test
public void testTwo1(){
System.out.println("TestTwo 1");
}

@Category(RunCases.class) ----Junit4.8中才并袜有的注解
@Test
public void testTwo2(){
System.out.println("TestTwo 2");
}
}
junit4.4中,使用Suite批量执行Test: TestOne.class,TestTwo.class中的Test会全部被执行,实现如下:
@RunWith(Suite.class)
@SuiteClasses({
TestOne.class,
TestTwo.class})
public class AllTestCases {
}
junit4.8中,使用Categories批量执行Test:可以有选择的执行SuiteClasses中的部分Test,实现如下:
在TestCase的Test前加上@Category(RunCases.class) 注解,RunCases.class是自定义分类类型(可以是class,也可以是interface,名称没有特殊要求);
public class RunCases {
}

public interface RunCases{
}
然后,我们使用@Runwith来指定使用绝岩激Categories测试引擎,并且使用@IncludeCategory或@ExcludeCategory指定哪些测试用例被执行:
@RunWith(Categories.class)
@IncludeCategory(RunCases.class)
@SuiteClasses({TestOne.class,TestTwo.class})
public class TestPartExcute {
}
执行结果:
TestOne 2
TestTwo 2

@RunWith(Categories.class)
@ExcludeCategory(RunCases.class)
@SuiteClasses({TestOne.class,TestTwo.class})
public class TestPartExcute {
}
执行结果:
TestOne 1
TestTwo 1
注意事项说明:
1.@Category({RunCases.class}) 注解用在测试用例类上,并不能生效;
2.可以定义多个分类类型,在@Category注解中,可以使用多个分类类型,eg:@Category({A.class,B.class});
3.@IncludeCategory或@ExcludeCategory注解中出现的类型,必须在@Category注解中出现过,否则执行会报错。

附带:Junit4各版本新特性汇总
Junit源码(github)地址:git://github.com/KentBeck/junit.git

JUnit 4.4
主要提供了以下枣枣三个大方面的新特性来更好的抓住编程人员的代码意图:
1.提供了新的断言语法(Assertion syntax)——assertThat
2.提供了假设机制(Assumption)
3.提供了理论机制(Theory)
JUnit 4.5
Runner实现发生了较大改变,废弃了原来的JUnit4ClassRunner,改用BlockJUnit4ClassRunner替代。新的runner机制更容易扩展和重用,可在测试执行流程中方便的切入加入新的特性。
JUnit 4.6
该版本提升了核心的体系结构,允许对测试进行重新排序以及并行处理等。
Junit 4.7
该版本增加了一个重要的新特性:Rule,同时添加了很多核心Rule:
TemporaryFolder:测试可以创建文件与目录并且会在测试运行结束后将其删除。这对于那些与文件系统打交道且独立运行的测试来说很有用。
ExternalResource:这是一种资源使用模式,它会提前建立好资源并且会在测试结束后将其销毁。这对于那些使用socket、嵌入式服务器等资源的测试来说很有用。
ErrorCollector:可以让测试在失败后继续运行并在测试结束时报告所有错误。这对于那些需要验证大量独立条件的测试来说很有用(尽管这本身可能是个“test smell”)。
ExpectedException:可以在测试中指定期望的异常类型与消息。
Timeout:为类中的所有测试应用相同的超时时间。
Junit 4.8
加入了一个Runner:Categories,可以只跑特定分类的测试用例。
Junit 4.9
Test-class and suite level Rules。
Maven support
Junit 4.10
The RuleChain rule allows ordering of TestRules。

java中框架Junit应该怎么使用

JUnit

JUnit是由 Erich Gamma 和 Kent Beck 编写的一个回归测试框架(regression testing framework)。Junit测试是程序员测试,即所谓白盒测试,因为程序员知道被测试的软件如何(How)完成功能和完成什么样(What)的功能。Junit是一套框架,继承TestCase类,就可以用Junit进行自动测试了。
更多JUnit信息

Cactus

Cactus是一个基于JUnit框架的简单测试框架,用来单元测试服务端Java代码。Cactus框架的主要目标是能够单元测试服务端的使用Servlet对象的Java方法如HttpServletRequest,HttpServletResponse,HttpSession等
更多Cactus 信息

Abbot

Abbot是一个用来测试Java GUIs的框架。用简单的基于XML的脚本或者Java代码,你就可以开始一个GUI。
更多Abbot信息

JUnitPerf

Junitperf实际是junit的一个decorator,通过编写用于junitperf的单元测试,我们也可使测试过程自动化。
更多JUnitPerf信息

DbUnit

DbUnit是为数据库驱动的项目迅仔提供的一个对JUnit 的扩展,除了提供一些常用功能,它可以将你的数据库置于一个测试轮回之间的状态。
更多DbUnit信息

Mockrunner

Mockrunner用在J2EE环境中进行应用程序的单元测试。它不仅支持Struts actions, servlets,过滤器和标签类还包括一个JDBC和一个JMS测试框架,可以用于测试基于EJB的应用程序。
更多Mockrunner信息

DBMonster

DBMonster是一个用生成随机数据来测试SQL数据库的压力测试工具。
更多DBMonster信息

MockEJB

MockEJB是一个不需要EJB容器就能运行EJB并进行测试的轻量级框架。
更多MockEJB信息

StrutsTestCase

StrutsTestCase 是Junit TestCase类的扩展,提供基于Struts框架的代码测试。StrutsTestCase同时提供Mock 对象方法和Cactus方法用来实际运行Struts ActionServlet,你可以通过运行servlet引擎来测试。因为StrutsTestCase使亩仔汪用ActionServlet控制器来测试你的代码,因此你不仅可以测试Action对象的实现,而且可以测试mappings,from beans以及forwards声明。StrutsTestCase不启动servlet容器来测试struts应用程序(容器外测试)也属于Mock对象测试,但是与EasyMock不同的是,EasyMock是提供了创建Mock对象的API,而StrutsTest则是专门负责测试Struts应用程序的Mock对象测试框架。
更多StrutsTestCase信息

JFCUnit

JFCUnit使得你能够为Java偏移应用程序编写测试例子。它为从用代码打开的窗口上获得句柄提供了支持;为在一个部件层次定位部件提供支持;为在部件中发起事件(例如按一个按钮)以及以线程安全方式处理部件测试提供支持。
更多JFCUnit信息

JTestCase

JTestCase 使用XML文件来组织多测试案例数据,声明条件(操作和期望的结果),提供了一套易于使用的方法来检索XML中的测试案例,按照数据文件的定义来声明结果。
更多JTestCase信息

SQLUnit

SQLUnit是一个单元测试框架,用于对数据库存储过程进行加归测试。用 Java/JUnit/XML开发。
更多SQLUnit信息

JTR

JTR (Java Test Runner)是一个开源的基于反转控制(IOC)的J2EE测试框架。它允许你构建复杂的J2EE测试套件(Test Suites)并连到应用服务器执行测试,可以包括多个测戚嫌试实例。JTR的licensed是GPL协议。
更多JTR信息

Marathon

Marathon是一个针对使用Java/Swing开发GUI应用程序的测试框架,它由recorder, runner 和 editor组成,测试脚本是python代码。Marathon的焦点是放在最终用户的测试上。
更多Marathon信息

TestNG

TestNG是根据JUnit 和 NUnit思想而构建的一个测试框架,但是TestNG增加了许多新的功能使得它变得更加强大与容易使用比如:
*支持JSR 175注释(JDK 1.4利用JavaDoc注释同样也支持)
*灵活的Test配置
*支持默认的runtime和logging JDK功能
*强大的执行模型(不再TestSuite)
*支持独立的测试方法。
更多TestNG信息

Surrogate Test framework

Surrogate Test framework是一个值得称赞单元测试框架,特别适合于大型,复杂Java系统的单元测试。这个框架能与JUnit,MockEJB和各种支持模拟对象(mock object )的测试工具无缝给合。这个框架基于AspectJ技术。
更多Surrogate Test framework信息

MockCreator

MockCreator可以为给定的interface或class生成模拟对象(Mock object)的源码。
更多MockCreator信息

jMock

jMock利用mock objects思想来对Java code进行测试。jMock具有以下特点:容易扩展,让你快速简单地定义mock objects,因此不必打破程序间的关联,让你定义灵活的超越对象之间交互作用而带来测试局限,减少你测试地脆弱性。
更多jMock信息

EasyMock

EasyMock为Mock Objects提供接口并在JUnit测试中利用Java的proxy设计模式生成它们的实例。EasyMock最适合于测试驱动开发。
更多EasyMock信息

Grinder

Grinder是一个开源的Java负载测试框架,它通过很多负载注射器来为分布式测试提供了便利。
支持用于执行测试脚本的Jython脚本引擎
HTTP测试可通过HTTP代理进行管理。
更多Grinder信息

XMLUnit

XMLUnit不仅有Java版本的还有.Net版本的。Java开发的XMLUnit提供了两个JUnit 扩展类XMLAssert和XMLTestCase,和一组支持的类。这些类可以用来比较两张XML之间的不同之处,展示XML利用XSLT来,校验XML,求得XPath表达式在XML中的值,遍历XML中的某一节点利DOM展开,
更多XMLUnit信息

Jameleon

Jameleon一个自动化测试工具。它被用来测试各种各样的应用程序,所以它被设计成插件模式。为了使整个测试过程变得简单Jameleon提供了一个GUI,因此Jameleon实现了一个Swing 插件。
更多Jameleon信息

J2MEUnit

J2MEUnit是应用在J2ME应用程序的一个单元测试框架。它基于JUnit.
更多J2MEUnit信息

Jetif

Jetif是一个用纯Java实现的回归测试框架。它为Java程序单元测试以及功能测试提供了一个简单而且可 伸缩的架构,可以用于个人开发或企业级开发的测试。它容易使用,功能强大,而且拥有一些企业级测试的 重要功能。Jetif来源于JUnit, JTestCase以及TestNG的启发,有几个基本的概念直接来自于JUnit, 比如说断言机制,Test Listener的概念,因此从JUnit转到Jetif是非常容易的。
更多Jetif信息

GroboUtils

GroboUtils使得扩展Java测试变得可能。它包括用在Java不同方面测试的多个子项目。在GroboUtils中最常被到的工具是:多线程测试(multi-threaded tests),整体单元测试(hierarchial unit tests),代码覆盖工具(code coverage tool)。
更多GroboUtils信息

Testare

TESTARE是用来简化分布式应用程序(比如:在SERVLETS,JMS listeners, CORBA ORBs或RMI环境下)测试开发过程的一个测试框架.
更多Testare信息

MockLib

MockLib是一个很小的包所以可容易地动态创建一个模拟对象.你可以从模拟的系统中抛出异常来确保你的系统能够正确处理错误.它同样也是一个线程安全的模拟对象库.
更多MockLib信息

JellyUnit

JellyUnit是一个基于Jelly的JUnit测试机制.它允许用Jelly脚本来完成单元测试.尤其是对于XML,XPath,SQL,HTTP,JMS和SOAP交互的测试特别有用.
更多JellyUnit信息

Pisces

这个项目继承于JUnit目的是提供一个分布式的测试环境.它给开发者/测试人员一个运行远程JUnits和复杂测试案例的能力,这个案例由几个并行运行的远程JUnit测试组成。
更多Pisces信息

JUnitEE

JUnitEE是对JUnit的一个简单扩展,可以支持在一个J2EE应用程序服务器上执行标准的测试案例。它主要由一个把测试结果输出为html的servlet组成。
更多JUnitEE信息

❸ JUNIT测试简单三角形的代码-Java

第一:此内容属于Junit4进行参数化测试,由于需要指定运行器问题,其中一种方法是新建一兄塌嫌 个类

第二:在羡手你源代码上加上打印语句,方便测试,比如

热点内容
安卓手机如何打开xp文件 发布:2024-11-29 08:27:46 浏览:949
战歌脚本第二集 发布:2024-11-29 08:22:42 浏览:890
缓存清理是什么意思 发布:2024-11-29 08:14:39 浏览:675
cvm服务器搭建博客 发布:2024-11-29 08:03:42 浏览:889
魅族手机软件怎么加密 发布:2024-11-29 07:50:04 浏览:214
阿里云服务器托管合同 发布:2024-11-29 07:46:37 浏览:297
linux用户权限设置 发布:2024-11-29 07:43:39 浏览:271
c语言if函数嵌套 发布:2024-11-29 07:43:35 浏览:758
学编程L2 发布:2024-11-29 07:39:58 浏览:430
微信如何设置收与付密码 发布:2024-11-29 07:39:15 浏览:541