• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

测试Seam应用程序

发布: 2008-7-08 12:08 | 作者: 网络转载 | 来源: 测试时代采编 | 查看: 171次 | 进入软件测试论坛讨论

领测软件测试网

你可以在Seam的更复杂的示例应用程序中找到大量关于集成测试的用法,还有在Ant或者Eclipse的TestNG插件下运行这些测试的使用说明。

31.3.1. 利用Mock数据进行集成测试

如果你需要在每个测试之前在数据库中插入或清除数据,你可以使用DBUnit进行Seam的集成测试。要做到这一点,要继承DBUnitSeamTest而不是SeamTest。

你需要提供数据集给DBUnit:

<dataset>

<ARTIST
id="1"
dtype="Band"
name="Pink Floyd" />

<DISC
id="1"
name="Dark Side of the Moon"
artist_id="1" />

</dataset>

并通过覆盖prepareDBUnitOperations()来告诉Seam:

protected void prepareDBUnitOperations() {
beforeTestOperations.add(
new DataSetOperation("my/datasets/BaseData.xml")
);
}

如果没有指定其它的操作作为构造器参数DataSetOperation的操作默认是DatabaseOperation.CLEAN_INSERT。 在调用每个@Test方法前,上述的示例会先清除BaseData.xml中定义的所有的表,然后插入BaseData.xml中定义的所有的数据行。

如果你需要在一个测试方法执行后进行额外的清除工作,添加操作到afterTestOperations列表中。

你需要通过设置一个名为datasourceJndiName的TestNG测试参数来告诉DBUnit你正在使用的数据源:

<parameter name="datasourceJndiName" value="java:/seamdiscsDatasource"/>

31.3.2. Seam Mail集成测试

警告!这个功能仍在开发当中。

集成测试Seam Mail相当的简单:

public class MailTest extends SeamTest {

@Test
public void testSimpleMessage() throws Exception {

new FacesRequest() {

@Override
protected void updateModelValues() throws Exception {
setValue("#{person.firstname}", "Pete");
setValue("#{person.lastname}", "Muir");
setValue("#{person.address}", "test@example.com");
}

@Override
protected void invokeApplication() throws Exception {
MimeMessage renderedMessage = getRenderedMailMessage("/simple.xhtml");
assert renderedMessage.getAllRecipients().length == 1;
Inte.netAddress to = (InternetAddress) renderedMessage.getAllRecipients()[0];
assert to.getAddress().equals("test@example.com");
}

}.run();
}
}

我们与往常一样创建一个新的FacesRequest。 在 invokeApplication 里我们通过传递消息的viewId去渲染getRenderedMailMessage(viewId);的消息。 这个方法返回已经渲染完成的消息,你可以继续进行你的测试。你当然可以同时使用任何一项标准JSF的生命周期的方法。

还有就是不支持渲染标准JSF组件,所以你不能方便地测试邮件消息的内容主体。

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/

44/4<1234

关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网