1.采用spring提供的单元测试通过注入方式
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>3.1.0.RELEASE</version>
</dependency>
加入单元测试包,可以方便控制事物、回滚
package com.unit.mongo;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.test.annotation.Rollback;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import com.home.model.mongo.Person;
import com.home.service.mongo.IPersonBiz;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath:applicationContext.xml"})
public class TestMongo {
@Autowired
private IPersonBiz personBiz;
@Test
public void test() {
findWithPage();
}
/**
* 测试mongoDB分页查询
*/
public void findWithPage(){
Pageable pageable = new PageRequest(0, 30);
Map<String, Object>params = new HashMap<String, Object>();
params.put("name", "tom");
List<Person> persons = personBiz.findWithPage(params, pageable);
for(Person person: persons){
System.out.println(person.toString());
}
}
@Rollback
public void save(){
}
}
2.实现TestCase单元测试
package com.unit.mongo;
import java.util.List;
import junit.framework.TestCase;
import org.junit.Before;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.data.mongodb.core.MongoOperations;
import com.home.model.mongo.Person;
/**
* 继承TestCase不依赖与spring-test包
* @author li
*/
public class TestWithCase extends TestCase {
public ApplicationContext ctx = null;
/**
* 测试一次初始化Spring容器
*/
@Before
protected void setUp() throws Exception {
super.setUp();
ctx = new ClassPathXmlApplicationContext(new String[] {"applicationContext.xml"});
}
/**
* 需要手动获取bean
* @return
*/
private MongoOperations getMongoOper(){
return (MongoOperations)ctx.getBean("mongoTemplate");
}
@Test
public void test() {
MongoOperations mongo = this.getMongoOper();
List<Person> persons = mongo.findAll(Person.class);
for(Person person: persons){
System.out.println(person.toString());
}
}
}
分享到:
相关推荐
在案例中,你将看到如何创建测试类,定义测试方法,设置测试数据,以及如何利用JUnit和Spring/Struts提供的工具来编写高效的单元测试。通过分析和运行源码,你可以了解如何将这些概念应用于实际项目,提高代码质量。...
在测试类上使用`@RunWith(SpringRunner.class)`注解启用Spring测试支持,并使用`@ContextConfiguration`指定Spring配置文件的位置。 2. **创建MockMVC对象**:使用`MockMvcBuilders.standaloneSetup()`或`...
单元测试是对软件中的最小可测试单元进行检查和验证,对于Java来说,这个单元通常是方法。JUnit作为一款轻量级的测试框架,提供了编写和执行这些测试用例的便利工具。 在Spring框架中,我们经常需要测试与依赖注入...
Spring TestContext框架提供了一个统一的入口点,允许我们在JUnit测试中加载Spring应用上下文。这可以通过继承`@RunWith(SpringRunner.class)`注解的测试类实现,或者使用`@SpringBootTest`注解直接启动应用上下文...
单元测试是一种针对软件中的最小可测试单元(如方法)进行的独立验证,目的是确保这些单元按照预期工作。在Java世界里,JUnit是最常用的单元测试框架,它提供了一套简洁的API来编写和运行测试用例。 Spring Boot...
单元测试是软件开发中的一种关键实践,其目的是验证软件的最小可测试单元,通常是函数或类,是否按照预期工作。通过独立地运行这些单元并检查它们的输出,开发者可以早期发现和修复代码中的错误,提高代码质量和可...
单元测试是对程序中最小可测试单元进行验证,通常是单个函数或方法。过去,开发者可能会通过编写main函数来手动测试代码功能,但这种方式效率低下且易于出错。现在,通过JUnit等工具,我们可以更系统、高效地进行...
在Spring测试中,我们需要一个用于测试的配置文件,通常命名为`test-context.xml`。在这个文件中,你可以声明要测试的bean和数据源(jdbc)配置。 ```xml <beans xmlns="http://www.springframework.org/schema/...
JUnit 是 Java 中开发单元测试的框架标准,由 Erich Gamma 和 Kent Beck 创建。它支持测试代码的独立,是 XP 编程思想的体现。JUnit 已经 13 岁了,是一个简单但有效的单元测试框架,世界上无数软件项目使用它。 ...
基于Spring的JUnit4单元测试
在搭建单元测试环境时,需要使用的 Jar 包有 junit4.jar 和 struts2-junit-plugin-2.1.8.jar。junit4.jar 是 Eclipse 自带的,可以在项目路径中导入。struts2-junit-plugin-2.1.8.jar 是 Struts2 提供的测试插件,...
Junit4+Spring2.5单元测试代码示例同时也适用注解注入的形式测试(前提要导好测试的包哦,包MyEclipce自带了)
**Junit单元测试详解** ...综上所述,Junit作为一个强大的单元测试工具,不仅覆盖了基础的断言和异常测试,还提供了丰富的特性以满足各种复杂的测试需求。熟练掌握Junit,能够极大地提升软件开发的质量和效率。
Spring Junit是一个常用的单元测试框架,它可以与Spring框架集成,提供了许多有用的注解和工具来简化单元测试的过程。然而,在使用Spring Junit进行单元测试时,可能会遇到加载配置文件失败的问题。本文将详细介绍这...
3. **Spring Test**:Spring 提供了自己的测试模块,包含`@RunWith(SpringRunner.class)`注解,它可以将JUnit测试与Spring环境结合,自动加载ApplicationContext,使得我们可以使用依赖注入来测试bean。 4. **@...
此外,`@WebMvcTest`则专门用于测试Spring MVC控制器,它可以自动配置MockMvc。 4. 单元测试策略 - 针对Service层:测试业务逻辑,通常会模拟Repository层,避免数据库操作。 - 针对Controller层:使用MockMvc...
spring-test是Spring框架的一部分,专门用于测试Spring应用程序。它提供了与Spring容器集成的测试工具,如`@ContextConfiguration`用于加载配置,`@Autowired`自动注入依赖,以及`@MockBean`和`@SpyBean`来创建模拟...
总结来说,Spring Boot多模块项目中Service层的单元测试是一个系统的过程,涉及到测试环境搭建、测试类编写、模拟对象的使用以及断言和覆盖率的检查。通过有效的单元测试,我们可以保证Service层的业务逻辑正确,...