测试驱动开发with Junit三Word下载.docx
- 文档编号:22367768
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:17
- 大小:21.36KB
测试驱动开发with Junit三Word下载.docx
《测试驱动开发with Junit三Word下载.docx》由会员分享,可在线阅读,更多相关《测试驱动开发with Junit三Word下载.docx(17页珍藏版)》请在冰豆网上搜索。
3.
4.create
table
student
5.([id]
int
primary
key
identity(1,1),
6.stuName
varchar(20)
not
null,
7.stuAge
8.stuSex
varchar(20)not
9.stuClass
null
10.)
11.go
12.
13.insert
into
values('
jack'
23,'
man'
'
GS2T11'
)
14.insert
mohindar'
24,'
15.insert
tim'
21,'
16.insert
rose'
woman'
17.insert
sakura'
22,'
18.
19.insert
dess'
GS2T12'
20.insert
hiruku'
21.insert
lucy'
22.insert
liky'
23.insert
desr'
24.go
先让我们来看看第一个功能如何实现:
在search.jsp中填入数据,然后将其提交给SearchAction类来处理。
SearchAction类调用业务逻辑层查询,将结果保存至request对象的属性"
result"
中,并且跳转至info.jsp页面。
如果查询不到结果,就构造一个ActionMessage,封装错误信息,并转向到error.jsp页面。
下面的请求URL将会显示调用SearchAction类:
search.do?
method=search
具体步骤如下:
步骤1:
在eclipse中放入strutstests-2.1.3.jar,junit.jar、commons-collections.jar
步骤2:
构造一个名为SearchForm的ActionForm和一个名为SearchAction的action。
SearchForm的属性为:
clazzName
步骤3:
更改相应的配置文件
1.<
form-beans>
2.
<
form-bean
name="
searchForm"
type="
com.struts.form.SearchForm"
/>
3.form-beans>
4.
5.<
action-mappings>
6.
action
attribute="
input="
/search.jsp"
7.
parameter="
method"
path="
/search"
scope="
request"
8.
com.struts.action.SearchAction"
validate="
false"
>
9.
forward
error"
/error.jsp"
10.
success"
/result.jsp"
11.
action>
12.action-mappings>
步骤4:
编写测试类
构造一个名为SearchActionTest的类并继承MockStrutsTestCase。
在该类中添
加测试方法testSearchSuccess
1.import
servletunit.struts.MockStrutsTestCase;
3.public
class
SearchActionTest
extends
MockStrutsTestCase
4.{
5.
public
void
testSearchSuccess()
{
setRequestPathInfo("
/search.do"
);
//1行
addRequestParameter("
"
search"
//2行
actionPerform();
//3行
}
11.}
代码解释:
1行:
设置请求SearchAction类的请求路径
2行:
在请求路径后加上一个请求参数
1行与2行就构成了/search.do?
3行:
调用actionPerform()来执行action类
注:
以上代码就是对一个测试方法的初始化。
可以根据需要自行修改
步骤5:
根据struts-config.xml文件完善testSearch方法。
先验证可以按照班级名称查询出所需要的数据,主要做以下事情:
a)
初始化提交数据
b)
验证request中"
属性是否有值
c)
是否返回result.jsp页面
代码如下:
1.public
2.{
setRequestPathInfo("
addRequestParameter("
clazzName"
"
gs2t11"
actionPerform();
assertNotNull(request.getAttribute("
));
verifyForward("
13.
14.}
添加提交数据,该数据就相当与从search.jsp提交的数据
查询成功后,将结果放入request中,所以判断result中的"
属性是否
有值来断定是否将结果成功放入request对象中。
验证查询成功后是否会返回success.jsp页面
运行junit,如果出现以下错误(具体如下图):
(请参考附件吧。
这里所有的图都省略……)
那么请在src下建立一个名WEB-INF的目录,将WebRoot下的WEB-INF中的web.xml文件与struts-config.xml文件拷贝过去即可。
如图:
步骤6:
在SearchAction中用最简单的代码先去实现步骤5中的功能
SearchAction
DispatchAction
2.{
private
SearchHandler
sh;
ActionForward
search(ActionMapping
mapping,ActionForm
form,
HttpServletRequest
request,
HttpServletResponse
response)
{
SearchFormsearchForm
=
(SearchForm)
form;
//获取表单中输入的班级
String
className
searchForm.getClazzName();
//查询该班级的信息
sh
new
SearchHandler();
14.
List
list=sh.searchByClassName(className);
15.
16.
if(list!
=null)
17.
//将班级信息保存至request中,并返回result.jsp
19.
request.setAttribute("
list);
20.
return
mapping.findForward("
21.
}
22.
else
23.
null;
24.
25.}
注释比较详细,就不再多解释了
运行测试类结果如下(成功部分编写完毕)
步骤7:
编写不能成功取出数据的测试。
在SearchActionTest类中添加一个名为testSearchFail的方法
testSearchFail()
gs2txx"
//1行
verifyActionMessages(new
String[]
{"
no.stuclass.found"
});
//2行
//3行
verifyForwardPath("
//4行
13.}
代码解释:
输入一个不存在的班级
验证向ActionMessages中放入的消息文本
验证返回地址
4行:
验证页面地址是否与转向的error对应
步骤8:
更改SearchAction类,实现步骤7的功能
(粗体为增加部分)
//构造一个ActionMessage保存一条消息
25.
ActionMessages
messages=new
ActionMessages();
26.
messages.add(Globals.MESSAGE_KEY,
ActionMess("
saveMessages(request,messages);
27.
//返回error.jsp
28.
29.
30.
31.}
运行测试类,正确
至此第一个功能测试开发完毕
接着我们一起来完成第二个功能:
在result.jsp页面中,点击学生的姓名后将其提交给DisplayAction类来处理。
DisplayAction类调用业务逻辑层查询,将结果保存至request对象的属性"
stu"
中,并且跳转至info.jsp页面
display.do?
method=display&
stuName=jack
构造一个名为DisplayForm的ActionForm和一个名为DisplayAction的Action。
DisplayForm的属性为stuName
修改相应的struts-config.xml
displayForm"
com.struts.form.DisplayForm"
/display"
com.struts.action.DisplayAction"
info"
/info.jsp"
11.action-mappings>
步骤3、编写DisplayAction的测试类DisplayActionTest,在其中加入一个名为testShowInfo()的方法。
该方法完成以下事情:
a)初始化提交数据
b)验证request中"
c)是否返回info.jsp页面
DisplayActioTest
MockStrutsTestCase
testShowInfo()
/display.do"
display"
stuName"
jack"
15.}
更改DisplayAction类,用最简短的代码实现其功能
cla
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 测试驱动开发with Junit三 测试 驱动 开发 with Junit
![提示](https://static.bdocx.com/images/bang_tan.gif)