Seam工程要能够运行单元测试首先要把JBoss Embedded容器环境搭建起来
还是采用搭建Tomcat时候的embedded-jboss-beta3.SP10
1. 将JBoss Embedded的容器中的bootstrap目录下的东西复制到java工程的测试环境下,例如:src/test/resources
2. 在测试环境下建立WEB-INF目录,复制实际发布的WEB-INF目录下的东西到此目录
3. 复制hibernate.cfg.xml,seam.properties等项目配置到测试环境的根目录下,例如:src/test/resources
<目录结构可以参考附件图片>
4. 采用如下的maven配置,搭建相应的lib库
<!-- Unit Test -->
<dependency>
<groupId>org.jboss.seam.embedded</groupId>
<artifactId>hibernate-all</artifactId>
<version>beta3.SP12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jboss.seam.embedded</groupId>
<artifactId>jboss-embedded-all</artifactId>
<version>beta3.SP12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jboss.seam.embedded</groupId>
<artifactId>thirdparty-all</artifactId>
<version>beta3.SP12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jboss.seam.embedded</groupId>
<artifactId>jboss-embedded-api</artifactId>
<version>beta3.SP12</version>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.jboss.microcontainer</groupId>
<artifactId>jboss-deployers-client-spi</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>5.9</version>
<scope>test</scope>
</dependency>
这样,单元测试的微环境搭建成功
接下来编写单元测试的样例, 所有的单元测试类都要继承与SeamTest类
public class UserDaoTest extends SeamTest {
@Test
public void testCRUD() throws Exception {
new FacesRequest() {
@Override
protected void invokeApplication() throws Exception {
User user = new User();
user.setUsername("Kevin Chen");
user.setPassword("Orz");
IUserDao userDao = (IUserDao) getValue("#{userDao}"); // 获取注入对象
Assert.assertNotNull(userDao);
userDao.save(user);
System.out.println(user.getId());
Assert.assertNotNull(userDao.get(user.getId()));
user.setUsername("Kingdom Sky");
userDao.update(user);
User user2 = userDao.get(user.getId());
System.out.println(user2.getUsername());
Assert.assertEquals(user2.getUsername(), user.getUsername());
Assert.assertEquals(userDao.get(user.getId()).getUsername(),
"Kingdom Sky");
List<User> users = userDao.findByCriteria();
System.out.println(users.size());
for (User u : users) {
System.out.println("Username : " + u.getUsername());
}
}
}.run();
}
}
最后,要在eclipse下运行单元测试,需要安装TestNG插件
- 描述: 测试工程目录
- 大小: 25.8 KB
- 描述: 单元测试成功
- 大小: 28.8 KB
分享到:
相关推荐
这个名为"Seam-Carving-Matlab-master.rar_boardkkc_seam_seam carving_seamca"的压缩包文件包含了Matlab实现的Seam Carving算法,非常适合学习和理解这一技术。 Seam Carving的基本思想是找到图像中的一条或几条...
JBoss_Enterprise_Application_Platform-5.0.1-Seam_Reference_Guide-en-US.pdf
8. **Seam 管理的事务和持久化 (Seam-Managed Transactions and Persistence)** - **事务管理**:Seam 自动处理事务的开始、提交或回滚,简化了事务管理的复杂性。 - **持久化支持**:Seam 提供了一系列工具和...
2007年Shai Avidan 和Ariel Shamir论文《Seam Carving for Content-Aware Image Resizing》所提出方法的Matlab代码实现和作者的论文。 效果非常炫,而且代码不长
而`seam-gen`命令作为Seam框架的一个重要组成部分,主要用于自动生成Seam项目的基本结构和代码模板,帮助开发者快速搭建起开发环境。 `seam-gen`命令的工作原理类似于Ruby语言中的“scaffold”概念,它通过一系列预...
Seam-gen工具极大地简化了配置过程,使得开发者可以专注于业务逻辑的实现,而不是基础设施的搭建。 在实际开发过程中,你可以根据需要扩展Seam工程,添加更多功能,如安全控制、邮件服务、国际化支持等。同时,利用...
seam-978-1-8471-9592-0 Seam 2.x 网页开发
Seam-gen 是一款用于快速生成基于 Seam 框架的基础项目结构的工具,它通过简单的命令行交互式过程,帮助开发者构建项目的雏形,并且能够根据数据库信息自动生成管理数据库的 CRUD(Create, Read, Update, Delete)...
Gumroad - ZBrush 35 SeamStitch Brushes 35个缝合的接缝画笔和高度/阿尔法贴图,1024x1024或2048x2048在Tiff,PSD和ZBrush画笔格式。 35 brushes and Height/alpha maps, all 1024x1024 or 2048x2048 in Tiff, PSD...
java jboss seam jboss-seam-selectitems
【Eclipse工程Seam示例2】是一个关于Java企业级开发的实践案例,它涉及到的主要技术包括Seam框架、EJB(Enterprise JavaBeans)以及JSF(JavaServer Faces)。这个项目可能是为了演示如何在Eclipse集成开发环境中...
- **定义动作**:通过 seam-gen 自动生成的动作模板定义新的动作类。 - **配置组件**:在 `components.xml` 文件中配置新动作组件。 以上是对 JBoss Seam 2.01GA REF DOC 的详细解读,希望对您理解和掌握 JBoss ...
### Seam-Javapolis2007 知识点解析 #### 标题解析 - **标题**:“seam-javapolis2007” - **解释**:此标题表明了内容是关于 Seam 框架在 2007 年 Javapolis 大会上的演示或演讲材料。Javapolis 是一个重要的 Java...
8. **测试与部署**:Seam提供了测试框架,可以进行单元测试和集成测试。完成开发后,将工程打包成WAR文件,部署到JBoss AS上进行运行。 9. **错误处理与日志**:Seam提供了一套强大的错误处理机制,包括异常处理和...
在描述中提到的是一个经过编译的`seam-forge`压缩包,其中可能已经包含了对某些测试用例的调整或优化,使得编译过程得以顺利通过。 一、seam-forge 的主要功能: 1. **项目生成**:`seam-gen`命令可以快速创建新的...
- 运行单元测试验证功能。 ##### 1.2 第一个例子:注册示例 - **代码分析**: - **实体Bean**:`User.java` 定义了用户的基本信息。 - **无状态会话Bean**:`RegisterAction.java` 处理用户的注册操作。 - **...
传统的等比例缩放技术,直接将图像整体缩放为目标尺寸,这样做通常会破坏图像内容的比例关系,因为会出现目标长宽比与源图像长宽比不一的情况,图像内容因此会受到损失,另一方面如果目标尺寸较小而源图像的重要信息...