直接上代码
package cn.pconline.bbs7.dao; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import java.util.*; import junit.framework.Assert; import org.apache.commons.lang.time.DateUtils; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.dao.EmptyResultDataAccessException; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.AbstractTransactionalJUnit4SpringContextTests; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import cn.pconline.bbs7.dao.log.LogDao; import cn.pconline.bbs7.dao.xdb.ModXDB; import cn.pconline.bbs7.model.Post; import cn.pconline.bbs7.model.Topic; import cn.pconline.bbs7.model.User; import cn.pconline.bbs7.model.log.Log; import cn.pconline.bbs7.model.log.TopicLog; import cn.pconline.bbs7.test.TestCommon; import cn.pconline.bbs7.utils.pager.Pager; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = { "classpath:appConfig/bbs7-context.xml" }) public class PostDaoTest extends AbstractTransactionalJUnit4SpringContextTests { private Post post; private PostDao postDao; private long tid; private long uid; @Before public void setUp() { postDao = (PostDao) this.applicationContext.getBean("postDao"); post = new Post(); tid = 2l; uid = 1l; post.setTid(tid); post.setUid(uid); post.setFloor(1); post.setMessage("test"); post.setStatus(1); post.setCreateIp("192.167.57.160"); post.setUpdateIp("192.167.57.160"); post.setCreateAt(new Date(Long.parseLong("1345695299364"))); post.setUpdateAt(new Date(Long.parseLong("1345695299364"))); post.setAgent(1); } @Test public void testCreatePost() { long newPostId = postDao.createPost(post); Assert.assertNotNull(newPostId); Assert.assertTrue(newPostId > 0); } }
结构大概如上所示,测试类要继承AbstractTransactionalJUnit4SpringContextTests。注意上面的注解,
@ContextConfiguration(locations = { "classpath:appConfig/bbs7-context.xml" })
其中bbs7-context.xml在classpath路径下的appConfig文件夹里面,是正常普通的spring配置文件,里面有一些数据源的初始化配置等。
如果是用maven来构建的话,classpath路径位于生成的target文件夹下,如:
源代码生成的classpath:D:\eclipseWorkspace\bbs7\branches\bbs7.0_pie_20130905\target\classes
测试代码生成的classpath:D:\eclipseWorkspace\bbs7\branches\bbs7.0_pie_20130905\target\test-classes
如果spring配置文件在WEB-INF下面,则用下面这个注解:
ContextConfiguration({"file:src/main/webapp/WEB-INF/applicationContext.xml"})
package com.sohu.group.service.external; import java.util.List; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration({"file:src/main/webapp/WEB-INF/applicationContext.xml"}) public class SuFriendServiceImplOverRMITest { @Autowired private SuFriendService suFriendService; @Test public void getUserFollowerListTest(){ List<String> list = suFriendService.getUserFollowerList("liug_talk@163.com"); System.out.println("------"+list); } }
相关推荐
在Spring MVC和JPA的开发过程中,单元测试是不可或缺的一部分,它可以帮助我们验证代码的正确性,确保系统...通过合理运用Spring的测试注解和事务管理机制,我们可以编写出可靠且易于维护的单元测试,提高代码质量。
同时,Spring Boot提供了`@SpringBootTest`注解,用于启动一个完整的Spring应用上下文,这样可以在测试中使用到Spring的所有功能。 三、Mockito与Spring Boot测试 Mockito是一个流行的Java单元测试框架,它允许我们...
Mockito是一个流行的Java模拟框架,它可以在单元测试中替代真实的依赖,使测试更加隔离。在Spring3中,我们可以结合`@InjectMocks`和`@Mock`注解来创建被测试对象和模拟对象: ```java import org.junit.Test; ...
在Spring框架中,单元测试是非常重要的一环,因为它可以帮助开发者确保代码的质量和稳定性。Junit是Java中最常用的单元测试框架,它提供了一套简单易用的API来编写和执行测试用例。 在Spring框架中,`spring-test`...
本文将深入探讨标题和描述中提到的几个关键测试领域:Spring测试、Struts测试、Hibernate测试、软件测试、网站测试以及使用JBuilder进行的单元测试技术。 首先,让我们从Spring测试开始。Spring是一个广泛使用的...
单元测试是一种软件开发过程中的重要环节,主要用于验证代码的各个最小可测试单元,如函数、方法或类,是否能够按照预期工作。通过编写自动化测试用例,开发者可以在修改代码后快速检查新变更是否引入了错误,确保...
4. `@Autowired`:用于注入Spring管理的bean,使得在测试中可以直接使用。 5. `@MockBean`和`@SpyBean`:这些注解可以用来模拟或监视特定的bean,方便测试。 三、Struts框架的单元测试 1. Struts2的测试挑战:...
Spring框架提供了全面的测试支持,包括单元测试和集成测试。Spring Testing模块包含了一系列的API和注解,如`@RunWith(SpringRunner.class)`,`@SpringBootTest`,`@WebMvcTest`等,用于简化Spring应用的测试。这些...
在Spring框架中,测试是确保代码质量和正确性的重要环节。...在实际开发中,结合Spring Test模块进行单元测试和集成测试,可以进一步提升软件质量。同时,了解并掌握这些知识点也是成为Spring专家的必经之路。
Spring Test模块提供了对Spring应用进行单元测试和集成测试的支持。它可以与JUnit或TestNG一起使用,提供ApplicationContext的加载和模拟bean的功能。测试时,我们可以利用`@RunWith(SpringRunner.class)`和`@...
Mock是在单元测试中用于模拟复杂依赖关系的技术。Mock对象可以替代真实对象,模拟返回值或行为,以便测试代码可以专注于单个功能,而不会受到外部因素的影响。这在测试涉及网络请求、数据库操作或其他外部资源的代码...
本文将详细介绍Java Web项目中单元测试与集成测试的实践方法,并结合实际案例,探讨如何有效地运用这些测试手段来提升代码质量和减少回归错误。 #### 二、测试工具的选择 在Java Web项目中,合理选择测试工具可以...
Spring提供了`@RunWith(SpringRunner.class)`注解,它是JUnit的一个扩展,可以让我们在单元测试中利用Spring的IoC容器。通过这个注解,我们可以注入需要的依赖,而不是手动创建它们。同时,`@Autowired`和`@MockBean...
Spring提供了丰富的测试支持,包括单元测试、集成测试和端到端测试,可以方便地与Mockito等库配合使用,确保代码的质量。 这份《spring-reference.pdf》中文文档详细阐述了Spring框架的各个方面,对于初学者和经验...
通过理解和熟练运用这些JUnit4特性,你可以构建出一套健壮且易于维护的单元测试体系,提高软件开发的质量和效率。阅读《单元测试利器JUnit4.pdf》文档将更深入地理解这些概念,并提供实践指导。
《Spring3.0就这么简单》的主旨就是帮助读者尽快上手,掌握Spring3.0的核心内容,正确地进行项目实战,同时汲取Spring的思想,并最终将这种思想灵活运用到实际工作中。《Spring3.0就这么简单》主要介绍了Spring3.0的...
Spring Test模块提供了测试Spring应用程序的工具,包括单元测试和集成测试的支持。Spring Boot的测试起步依赖使编写测试变得简单,可以快速验证应用程序的正确性。 十、最佳实践 手册中还涵盖了Spring框架的最佳...
在软件开发过程中,单元测试是一项至关重要的任务,它能够确保代码的正确性和可维护性。JUnit作为Java领域最流行的单元测试框架,是开发者必备的工具之一。本学习阶段将带你深入理解和掌握JUnit的使用,以及如何通过...
我们还可以使用JUnit进行单元测试,测试单个类或方法的功能,以及Mockito等库来模拟协作对象,确保测试的隔离性。对于集成测试,Spring Boot的TestRestTemplate或WebTestClient可以用来发送HTTP请求并验证响应。 总...
11. **测试支持**:Spring框架提供了单元测试和集成测试的支持,如`@Autowired`注解用于注入依赖,`@RunWith(SpringRunner.class)`用于启动Spring测试环境。 这份Spring中文开发手册将帮助开发者深入理解以上各个...