开始学习JUnit In Action
所有单元测试框架都应该遵守的3条规则:
1.每个单元测试都必须独立于其它单元测试而运行.
2.必须以单项测试为单位来检测和报告错误
3.必须易于定义要运行哪些单元测试.
JUnit提供Swing图形界面
windows: java -cp junit.jar;. junit.swingui.TestRunner junit.samples.AllTests
Unix: java -cp junit.jar:. junit.swingui.TestRunner junit.samples.AllTests
TestCase(测试用例)——扩展了JUnit的TestCase类的类。它以testXXX方法的形式包含一个或多个测试。一个test case把具有公共行为的测试归入一组。在本书的后续部分,当我们提到测试的时候,我们指的是一个testXXX方法;当我们提及test case的时候,我们指的是一个继承自TestCase的类,也就是一组测试.
TestSuite(测试集合)——一组测试。一个test suite是把多个相关测试归入一组的便捷方式。例如,如果你没有为TestCase定义一个test suite,那么JUnit就会自动提供一个test suite,包含TestCase中所有的测试
TestRunner(测试运行器)——执行test suite的程序。JUnit提供了几个test runner,你可以用它们来执行你的测试。没有TestRunner接口,只有一个所有test runner都继承的BaseTestRunner。因此,当我们编写TestRunner的时候,我们实际上指的是任何继承BaseTestRunner的test runner类
TestListener(测试侦听器) --- 多个对象同时报告一个测试的信息.
TestCase通过setUp和tearDown方法来自动创建和销毁fixture。TestCase会在运行每个测试之前调用setUp,并且在每个测试完成之后调用tearDown。
概括地说,controller做这些事情:
· 接受请求。
· 对请求执行常用计算。
· 选择合适的请求处理器。
· 路由请求,以使处理器可以执行相关的业务逻辑。
· 可能会提供一个顶层的处理器用于处理错误和异常。
Controller是一个很好用的类,在很多应用中都可以看到它的身影。例如,在一个表现层模式中,一个web controller接受HTTP请求,并把HTTP参数、cookie、HTTP头取出,可能使得HTTP元素易于被应用的其他部分访问。Web controller会基于请求中的元素判断出需调用的合适的业务逻辑组件(可能是在HTTP session、数据库或者其他资源中的持久数据的帮助下做到这点)。Apache Struts框架就是web controller的一个例子。