`
XmKevinChen
  • 浏览: 86109 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

Seam 工程搭建记录(2) -- 单元测试搭建

    博客分类:
  • J2EE
阅读更多

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
0
0
分享到:
评论

相关推荐

    Seam-Carving-Matlab-master.rar_boardkkc_seam_seam carving_seamca

    这个名为"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

    JBoss_Enterprise_Application_Platform-5.0.1-Seam_Reference_Guide-en-US.pdf

    Seam in Action - MEAP - 2008

    8. **Seam 管理的事务和持久化 (Seam-Managed Transactions and Persistence)** - **事务管理**:Seam 自动处理事务的开始、提交或回滚,简化了事务管理的复杂性。 - **持久化支持**:Seam 提供了一系列工具和...

    Seam Carving for Content-Aware Image Resizing(基于内容缩放图片的方法)

    2007年Shai Avidan 和Ariel Shamir论文《Seam Carving for Content-Aware Image Resizing》所提出方法的Matlab代码实现和作者的论文。 效果非常炫,而且代码不长

    seam-gen命令解析文档

    而`seam-gen`命令作为Seam框架的一个重要组成部分,主要用于自动生成Seam项目的基本结构和代码模板,帮助开发者快速搭建起开发环境。 `seam-gen`命令的工作原理类似于Ruby语言中的“scaffold”概念,它通过一系列预...

    JBoss Seam工程的创建

    Seam-gen工具极大地简化了配置过程,使得开发者可以专注于业务逻辑的实现,而不是基础设施的搭建。 在实际开发过程中,你可以根据需要扩展Seam工程,添加更多功能,如安全控制、邮件服务、国际化支持等。同时,利用...

    seam-978-1-8471-9592-0:Seam 2.x 网页开发

    seam-978-1-8471-9592-0 Seam 2.x 网页开发

    Seam-gen生成基础项目骨架

    Seam-gen 是一款用于快速生成基于 Seam 框架的基础项目结构的工具,它通过简单的命令行交互式过程,帮助开发者构建项目的雏形,并且能够根据数据库信息自动生成管理数据库的 CRUD(Create, Read, Update, Delete)...

    Gumroad - ZBrush 35 SeamStitch Brushes.zip

    Gumroad - ZBrush 35 SeamStitch Brushes 35个缝合的接缝画笔和高度/阿尔法贴图,1024x1024或2048x2048在Tiff,PSD和ZBrush画笔格式。 35 brushes and Height/alpha maps, all 1024x1024 or 2048x2048 in Tiff, PSD...

    jboss-seam-selectitems

    java jboss seam jboss-seam-selectitems

    eclipse 工程seam 例子2

    【Eclipse工程Seam示例2】是一个关于Java企业级开发的实践案例,它涉及到的主要技术包括Seam框架、EJB(Enterprise JavaBeans)以及JSF(JavaServer Faces)。这个项目可能是为了演示如何在Eclipse集成开发环境中...

    jboss seam 2.01GA REF DOC

    - **定义动作**:通过 seam-gen 自动生成的动作模板定义新的动作类。 - **配置组件**:在 `components.xml` 文件中配置新动作组件。 以上是对 JBoss Seam 2.01GA REF DOC 的详细解读,希望对您理解和掌握 JBoss ...

    seam-javapolis2007

    ### Seam-Javapolis2007 知识点解析 #### 标题解析 - **标题**:“seam-javapolis2007” - **解释**:此标题表明了内容是关于 Seam 框架在 2007 年 Javapolis 大会上的演示或演讲材料。Javapolis 是一个重要的 Java...

    seam创建工程

    8. **测试与部署**:Seam提供了测试框架,可以进行单元测试和集成测试。完成开发后,将工程打包成WAR文件,部署到JBoss AS上进行运行。 9. **错误处理与日志**:Seam提供了一套强大的错误处理机制,包括异常处理和...

    seam-forge dist

    在描述中提到的是一个经过编译的`seam-forge`压缩包,其中可能已经包含了对某些测试用例的调整或优化,使得编译过程得以顺利通过。 一、seam-forge 的主要功能: 1. **项目生成**:`seam-gen`命令可以快速创建新的...

    SEAM 中文开发指南

    - 运行单元测试验证功能。 ##### 1.2 第一个例子:注册示例 - **代码分析**: - **实体Bean**:`User.java` 定义了用户的基本信息。 - **无状态会话Bean**:`RegisterAction.java` 处理用户的注册操作。 - **...

    Seam Carving for Content-Aware Image Resizing

    传统的等比例缩放技术,直接将图像整体缩放为目标尺寸,这样做通常会破坏图像内容的比例关系,因为会出现目标长宽比与源图像长宽比不一的情况,图像内容因此会受到损失,另一方面如果目标尺寸较小而源图像的重要信息...

Global site tag (gtag.js) - Google Analytics