`

Spring配置开发的Junit测试

 
阅读更多

继续上面的2篇,继续Spring的配置方式的开发测试。代码如下:

1.实体类:

package com.tta.model;

public class User implements java.io.Serializable {
	private Integer id;
	private String name;
	private Integer age;
	private String address;

	public User() {
	}

	public User(Integer age, String address) {
		this.age = age;
		this.address = address;
	}

	public User(String name, Integer age, String address) {
		this.name = name;
		this.age = age;
		this.address = address;
	}

	public Integer getId() {
		return this.id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public String getName() {
		return this.name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public Integer getAge() {
		return this.age;
	}

	public void setAge(Integer age) {
		this.age = age;
	}

	public String getAddress() {
		return this.address;
	}

	public void setAddress(String address) {
		this.address = address;
	}

}

实体 orm映射文件:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping>
    <class name="com.tta.model.User" table="tb_model_user" >
        <id name="id" type="integer">
            <column name="id" />
            <generator class="native"></generator>
        </id>
        <property name="name" type="string">
            <column name="name" length="20" />
        </property>
        <property name="age" type="integer">
            <column name="age" not-null="true" />
        </property>
        <property name="address" type="string">
            <column name="address" length="50" not-null="true" />
        </property>
    </class>
</hibernate-mapping>

 

2.服务层:

package com.tta.svc;

import java.util.List;

import com.tta.model.User;

public interface IUserService {
	
	void saveUser(User u);
	
	void deleteUser(User u);
	
	void updateUser(User u);
	
	User findUserById(int userId);
	
	List<User> findUsers();
}

 

package com.tta.svc.impl;

import java.util.List;

import com.tta.dao.IUserDao;
import com.tta.model.User;
import com.tta.svc.IUserService;

public class UserService implements IUserService {
	private IUserDao useDao;
	@Override
	public void deleteUser(User u) {
		useDao.deleteUser(u);
	}

	@Override
	public User findUserById(int userId) {
		return useDao.findUserById(userId);
	}

	@Override
	public List<User> findUsers() {
		return useDao.findUsers();
	}

	@Override
	public void saveUser(User u) {
		useDao.saveUser(u);
	}

	@Override
	public void updateUser(User u) {
		useDao.updateUser(u);
	}

	public void setUseDao(IUserDao useDao) {
		this.useDao = useDao;
	}

}

 

3.数据操作层:

package com.tta.dao;

import java.util.List;

import com.tta.model.User;

public interface IUserDao {
	
	void saveUser(User u);
	
	void deleteUser(User u);
	
	void updateUser(User u);
	
	User findUserById(int userId);
	
	List<User> findUsers();
}

 

package com.tta.dao.impl;

import java.util.List;

import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import com.tta.dao.IUserDao;
import com.tta.model.User;

public class UserDao extends HibernateDaoSupport implements IUserDao {
	@Override
	public void deleteUser(User u) {
		getHibernateTemplate().delete(u);
	}

	@Override
	public User findUserById(int userId) {
		User u = new User();
		u.setId(userId);
		return (User) getHibernateTemplate().findByExample(u).get(0);
	}

	@Override
	public List<User> findUsers() {
		//Model User
//		return getHibernateTemplate().find("from User");
		//View User
		return getHibernateTemplate().find("select new User(age,address) from User");
	}

	@Override
	public void saveUser(User u) {
		getHibernateTemplate().save(u);
	}

	@Override
	public void updateUser(User u) {
		getHibernateTemplate().merge(u);
	}
	
}

 

 

4.配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans 
	http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">

	<bean id="dataSource"
		class="org.apache.commons.dbcp.BasicDataSource">
		<property name="driverClassName"
			value="com.mysql.jdbc.Driver">
		</property>
		<property name="url" value="jdbc:mysql://127.0.0.1:3306/mbpa"></property>
		<property name="username" value="root"></property>
		<property name="password" value="sainwind"></property>
	</bean>
	<bean id="sessionFactory"
		class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
		<property name="dataSource">
			<ref bean="dataSource"></ref>
		</property>
		<property name="hibernateProperties">
			<props>
				<prop key="hibernate.dialect">
					org.hibernate.dialect.MySQLDialect
				</prop>
			</props>
		</property>
		<property name="mappingResources">
			<list>
				<value>com/tta/model/User.hbm.xml</value>
			</list>
		</property>
	</bean>
	
	<bean id="userDaoId" class="com.tta.dao.impl.UserDao">
		<property name="sessionFactory" ref="sessionFactory"></property>
	</bean>
	
	<bean id="userServiceId" class="com.tta.svc.impl.UserService">
		<property name="useDao" ref="userDaoId"></property>
	</bean>
	
</beans>

 

5.测试类:

package com.tta.svc.test;

import java.util.List;

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.tta.model.User;
import com.tta.svc.IUserService;
import com.tta.svc.impl.UserService;

public class UserCfgTest {
	private static ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
	private static IUserService svc = (UserService)applicationContext.getBean("userServiceId");
//	@Test
	public void save(){
		User u = new User(22,"zhangsan");
		svc.saveUser(u);
	}
//	@Test
	public void delete(){
		svc.deleteUser(svc.findUserById(1));
	}
//	@Test
	public void update(){
		User u = svc.findUserById(1);
		u.setAddress("上海市徐汇区零陵路123号");
		u.setAge(35);
		u.setName("赵冰");
		svc.updateUser(u);
	}
	@Test
	public void getUsers(){
		List<User> users = svc.findUsers();
		for(User u : users){
			System.out.println("name : "+u.getName()+" address:"+u.getAddress());
		}
	}
}

 

分享到:
评论

相关推荐

    spring MVC junit 单元测试(controller)

    在测试类上使用`@RunWith(SpringRunner.class)`注解启用Spring测试支持,并使用`@ContextConfiguration`指定Spring配置文件的位置。 2. **创建MockMVC对象**:使用`MockMvcBuilders.standaloneSetup()`或`...

    spring4+JUnit简单测试

    《Spring4与JUnit的简单测试实践》 在Java开发领域,Spring框架以其强大的功能和灵活性深受开发者喜爱。Spring4作为其一个重要的版本,引入了许多改进和优化,使得测试变得更加便捷。而JUnit作为Java单元测试的事实...

    spring-dm junit

    3. **定义测试上下文**:使用`@ContextConfiguration`注解来指定包含被测试组件的Spring配置文件。这样,Spring会自动加载配置并准备好测试环境。 4. **模拟依赖**:在OSGi环境中,服务通常是通过服务引用获取的。...

    基于Spring的JUnit单元测试

    在Java开发领域,Spring框架是应用最广泛的IoC(Inversion of Control)和AOP(Aspect Oriented Programming)框架之一,而JUnit则是Java语言中进行单元测试的标准库。本篇文章将详细探讨如何在Spring环境中利用...

    spring3 junit 测试 + word

    - **@RunWith(SpringJUnit4ClassRunner.class)**:这个注解将JUnit测试类与Spring TestContext框架关联起来,使Spring能够管理测试环境。 - **@ContextConfiguration**:此注解用于指定测试所需的配置文件,Spring...

    spring2 junit3

    在Spring项目中,这里可能有Spring配置文件(如`applicationContext.xml`)和使用JUnit3编写的测试类。 4. `target`:这个目录是Maven或Gradle等构建工具生成的,包含编译后的类文件、资源文件以及最终的可部署工件...

    spring整合单元测试Junit开发包

    Spring框架是Java应用程序开发中的一个...在实际开发中,利用Spring Test和JUnit的组合,开发者可以编写出高效、全面的测试用例,确保代码的正确性和系统的稳定性。理解并熟练运用这些知识点对于提升软件质量至关重要。

    Spring+JUnit4 +Ant测试报告

    1. **设置测试环境**:在Spring配置文件中声明需要测试的bean,并通过@Autowired注解注入依赖。这使得测试类可以直接使用这些bean,无需手动实例化。 2. **编写测试类**:使用JUnit4的注解编写测试方法,例如,对于...

    spring boot Junit4配置

    创建JUnit测试类的步骤如下:在你要测试的类的同一目录下,右键选择“New”-&gt;“Java”-&gt;“JUnit”-&gt;“JUnit Test Case”。这会自动生成一个基础的JUnit测试类模板。 在生成的测试类中,我们需要添加必要的注解来...

    Transactional:Spring事务性Junit测试

    在实际项目中,Transactional-master这个压缩包可能包含了整个测试项目的源码,包括Spring配置文件、测试类、业务服务层代码以及tk-mybatis的相关配置。通过研究这些代码,你可以深入理解Spring事务管理与JUnit测试...

    ssm的jar包,Spring源码,junit测试jar

    在这个压缩包中,包含的"ssm的jar文件"应该包括了这三个框架的核心库,以及可能需要的其他辅助库,如Spring的源码和Junit测试库。 1. **Spring框架**:Spring是Java应用中的核心容器,它负责管理对象的生命周期和...

    struts2_spring3.0_Junit4.7_Maven2.2.1_整合运行说明_培训.pdf )

    - 将`struts.xml`中的Action类设置为Spring配置文件中的Bean ID: ```xml &lt;result name="success"&gt;/jsp/loginSuccess.jsp &lt;result name="error"&gt;/jsp/loginError.jsp ``` #### 2.2 使用JUnit4.7测试...

    spring的Junit测试-helloworld

    总之,Spring的JUnit测试提供了一种高效、便捷的方式来验证Spring应用中的组件。通过理解和使用这些工具,我们可以更好地保证代码质量,提高开发效率。同时,了解其背后的源码和工作原理也有助于我们成为更优秀的...

    Junit 单元测试完整案例

    在案例中,你将看到如何创建测试类,定义测试方法,设置测试数据,以及如何利用JUnit和Spring/Struts提供的工具来编写高效的单元测试。通过分析和运行源码,你可以了解如何将这些概念应用于实际项目,提高代码质量。...

    spring3 and junit4

    在Java开发领域,Spring框架和JUnit测试工具是不可或缺的重要组成部分。Spring3.2.8是Spring框架的一个稳定版本,它提供了丰富的功能,包括依赖注入、AOP(面向切面编程)、MVC(模型-视图-控制器)以及数据访问等。...

    spring junit

    标题中的“spring junit”指的是Spring框架与JUnit测试框架的结合使用。在Java开发中,单元测试是确保代码质量的重要步骤,而JUnit是最流行的Java单元测试框架。Spring框架提供了丰富的功能,包括依赖注入、AOP...

    spring-Test,Junit4 jar,和测试代码

    总结来说,Spring Test和JUnit4的组合为Java开发者提供了一套强大的测试工具,可以方便地对Spring应用进行单元测试和集成测试。通过合理的注解使用和测试设计,我们可以确保代码的质量和系统的稳定性。在实际项目...

    Spring Junit单元测试加载配置文件失败问题

    Spring Junit单元测试加载配置文件失败问题解决方法 在软件开发过程中,单元测试是一个非常重要的步骤,它可以帮助开发者检测代码中的错误、提高代码的可靠性和稳定性。Spring Junit是一个常用的单元测试框架,它...

    Spring整合Junit框架进行单元测试Demo

    为了更好地模拟实际运行环境,我们可能需要在Spring配置文件中定义一些mock bean,或者使用`@MockBean`和`@SpyBean`等Spring Boot测试注解来创建mock对象。这样,我们可以在测试中控制这些mock对象的行为,以便更...

    spring+junit4

    在结合JUnit4进行测试时,我们需要使用Spring的`@ContextConfiguration`注解来加载Spring配置文件,这样可以确保在测试环境中也能注入正确的依赖。例如: ```java @RunWith(SpringJUnit4ClassRunner.class) @...

Global site tag (gtag.js) - Google Analytics