博客园  :: 首页  :: 联系 :: 订阅 订阅  :: 管理

Junit研究心得——Junit In Action 2ED中的Definition收集

Posted on 2013-03-29 14:03  Bruce Zhang  阅读(277)  评论(0编辑  收藏  举报

1. 框架:是一个应用程序的半成品。框架提供了一个可复用的公共结构,可以在多个应用程序之间进行共享。开发人员将框架融入到他们自己的应用程序中,并且加以扩展以满足他们特定的需求。框架与工具包的不同之处在于,框架提供了一致的结构,而不只是一组简单的工具类。

2. 单元测试:检查一个独立工作单元的行为。在Java应用程序中,独立工作单元经常是(但不总是)一个独立的方法。相比之下,集成测试验收测试检查的是各种组件如何交互。一个工作单元就是一项任务,不直接依赖于其他任何任务的完成。

3. API契约:是一种观点,把一个应用程序编程接口(API)当做是在调用者与被调用者之间的正式协议。通常,单元测试通过证明预期的行为来帮助定义API契约。API契约的概念源于因Eiffel编程语言而流行的“Design by Contract”(http://www.eiffel.com/developers/design_by_contract.html)的实践。

4. 测试类:Test Class或者Test Case,一个包含一个或者多个测试的类,而这些测试就是指那些用@Test注释的方法。使用一个测试类,可以把具有公共行为的测试归入一组。通常,在生产类和测试类之间都存在着一对一的关系。

5. 测试集:Test Suite,是一种把多个相关测试归入一组的便捷方式。如果你没有定义测试集,那么Junit会自动提供一个测试集,包含测试类中的所有测试。一个测试集通常会将同一个包中的测试类归入一个组。

6.测试运行器:Test Runner,JUnit 中所有的测试方法都是由它负责执行的。JUnit 为单元测试提供了默认的测试运行器,但 JUnit 并没有限制您必须使用默认的运行器。相反,您不仅可以定制自己的运行器(所有的运行器都继承自 org.junit.runner.Runner),而且还可以为每一个测试类指定使用某个具体的运行器。指定方法也很简单,使用注解 org.junit.runner.RunWith 在测试类上显式的声明要使用的运行器即可:

@RunWith(value=Parameterized.class)   
public class Testxxxxx {   
  ……   
} 

显而易见,如果测试类没有显式的声明使用哪一个测试运行器,JUnit 会启动默认的测试运行器执行测试类。一般情况下,默认测试运行器可以应对绝大多数的单元测试要求;当使用 JUnit 提供的一些高级特性或者针对特殊需求定制 JUnit 测试方式时,显式的声明测试运行器就必不可少了。