自动化测试可以减缓我们的压力,在重构时增强信心。
在J2ee体系中,分层(tier)设计的思想大家都已经比较熟悉了,在持久层和业务层的测试比较简单,使用junit就可以了,但是涉及到web容器,例如对struts部分的测试,就比较麻烦了,我以前也一直是只对service层作单元测试的,即首先保证facade层不出错。我对web层的测试的概念一直认为是作并发性访问压力测试,性能测试的,没想过作功能性的单元测试。
今天接触到一个新东东 - StrutsTestCase for JUnit,它支持两种测试:提供Mock 对象方法和Cactus方法。不仅可以测试Action对象的实现,而且可以测试mappings,from beans以及forwards声明.
当前的版本是StrutsTest2.1.3,好象仅支持struts1.1,使用时需要引入strutstest-2.1.3.jar以及junit.jar。
主页为 http://sourceforge.net/projects/strutstestcase/
把它自带的例子(基于Mock的)试着走了一下,觉得掌握起来非常容易,不用启动jsp容器就可以自动地测试了。
//MockStrutsTestCase是扩展自TestCase的
public class TestLoginAction extends MockStrutsTestCase {
public void testSuccessfulLogin() {
//搭建请求到达此action时的环境:request参数 session中用到的对象等
addRe