StrutsTestCase配置的常见问题及其多级Action的处理方式
一:写本文的原因
StrusTestCase是比较常见使用的测试方法,网上的教程很多。但是为什么要写这篇文章呢?首先网上的教程版本就2-3种,基本大家都相互copy,而且教程比较陈旧。第二,遇到的不少问题网上的很多人都没给出可用的解决方法。下文会给出自己遇到的一些问题和具体的解决方法。
二:StrutsTestCase的基本原理
这里简单介绍一下StrutsTestCase的基本原理。StrutsTestCase是Junit的扩展类,主要用于对MVC工程的测试。下面的教程用于纯Struts2工程。StrutsTestCase是一个用于测试Struts行为的基于Junit的测试框架。如果你使用Struts,那么你会注意到它可以提供给你一种容易而有效的方式来测试你的应用程序的Struts行为类。说的明白一点就是用来测试一个具体的Action,同时自己模拟来自网页的输入信息,然后运行一下测试类的excute,得到的结果的和你期望的值进行对比用来测试你的项目有没有问题。至于更加详细的原理大家可以百度找一些资料,本文的重点不在这里。
三:StrutsTestCase的常见问题
其实这里才是写本文的目的所在,这里分享几个我遇到的几个比较坑的问题。
第一个问题就是我引入了struts2-Junit-Plugin和一些Spring的一些jar包,发现各种类找不到,也就是未发现jar包,可我明明引入了jar包了啊?经过一段时间终于发现了问题的所在,原来我工程的struts2的核心jar包有问题。在那个版本的struts2的jar包发现了StrutsTestCase这个类,但是这个类里面没有任何函数。但是eclipse提醒我们引入类时默认的是struts2核心jar里面提供的StrutsTestCase类。我也很纳闷为何原本提供了这个接口但是不提供相应的测试函数呢?好吧,这时我们只好重新换struts2的核心包了。笔者用的是最新版本的核心包,这个版本是没有这个问题的:http://struts.apache.org/download.cgi#struts23163,下载App即可,把里面的struts2-blank.war解压,把里面的jar全部导入即可。这是第一个问题。
第二个问题又来了,当时笔者不放心把lib下的jar包全部导入了,结果报错找不到包。这个原因是struts2的包一些自身就是高版本不支持低版本。那么我们究竟需要哪些jar包呢?下面笔者把截图发上。