继续上面的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()); } } }
相关推荐
在测试类上使用`@RunWith(SpringRunner.class)`注解启用Spring测试支持,并使用`@ContextConfiguration`指定Spring配置文件的位置。 2. **创建MockMVC对象**:使用`MockMvcBuilders.standaloneSetup()`或`...
《Spring4与JUnit的简单测试实践》 在Java开发领域,Spring框架以其强大的功能和灵活性深受开发者喜爱。Spring4作为其一个重要的版本,引入了许多改进和优化,使得测试变得更加便捷。而JUnit作为Java单元测试的事实...
3. **定义测试上下文**:使用`@ContextConfiguration`注解来指定包含被测试组件的Spring配置文件。这样,Spring会自动加载配置并准备好测试环境。 4. **模拟依赖**:在OSGi环境中,服务通常是通过服务引用获取的。...
在Java开发领域,Spring框架是应用最广泛的IoC(Inversion of Control)和AOP(Aspect Oriented Programming)框架之一,而JUnit则是Java语言中进行单元测试的标准库。本篇文章将详细探讨如何在Spring环境中利用...
- **@RunWith(SpringJUnit4ClassRunner.class)**:这个注解将JUnit测试类与Spring TestContext框架关联起来,使Spring能够管理测试环境。 - **@ContextConfiguration**:此注解用于指定测试所需的配置文件,Spring...
在Spring项目中,这里可能有Spring配置文件(如`applicationContext.xml`)和使用JUnit3编写的测试类。 4. `target`:这个目录是Maven或Gradle等构建工具生成的,包含编译后的类文件、资源文件以及最终的可部署工件...
Spring框架是Java应用程序开发中的一个...在实际开发中,利用Spring Test和JUnit的组合,开发者可以编写出高效、全面的测试用例,确保代码的正确性和系统的稳定性。理解并熟练运用这些知识点对于提升软件质量至关重要。
1. **设置测试环境**:在Spring配置文件中声明需要测试的bean,并通过@Autowired注解注入依赖。这使得测试类可以直接使用这些bean,无需手动实例化。 2. **编写测试类**:使用JUnit4的注解编写测试方法,例如,对于...
创建JUnit测试类的步骤如下:在你要测试的类的同一目录下,右键选择“New”->“Java”->“JUnit”->“JUnit Test Case”。这会自动生成一个基础的JUnit测试类模板。 在生成的测试类中,我们需要添加必要的注解来...
在实际项目中,Transactional-master这个压缩包可能包含了整个测试项目的源码,包括Spring配置文件、测试类、业务服务层代码以及tk-mybatis的相关配置。通过研究这些代码,你可以深入理解Spring事务管理与JUnit测试...
在这个压缩包中,包含的"ssm的jar文件"应该包括了这三个框架的核心库,以及可能需要的其他辅助库,如Spring的源码和Junit测试库。 1. **Spring框架**:Spring是Java应用中的核心容器,它负责管理对象的生命周期和...
- 将`struts.xml`中的Action类设置为Spring配置文件中的Bean ID: ```xml <result name="success">/jsp/loginSuccess.jsp <result name="error">/jsp/loginError.jsp ``` #### 2.2 使用JUnit4.7测试...
总之,Spring的JUnit测试提供了一种高效、便捷的方式来验证Spring应用中的组件。通过理解和使用这些工具,我们可以更好地保证代码质量,提高开发效率。同时,了解其背后的源码和工作原理也有助于我们成为更优秀的...
在案例中,你将看到如何创建测试类,定义测试方法,设置测试数据,以及如何利用JUnit和Spring/Struts提供的工具来编写高效的单元测试。通过分析和运行源码,你可以了解如何将这些概念应用于实际项目,提高代码质量。...
在Java开发领域,Spring框架和JUnit测试工具是不可或缺的重要组成部分。Spring3.2.8是Spring框架的一个稳定版本,它提供了丰富的功能,包括依赖注入、AOP(面向切面编程)、MVC(模型-视图-控制器)以及数据访问等。...
标题中的“spring junit”指的是Spring框架与JUnit测试框架的结合使用。在Java开发中,单元测试是确保代码质量的重要步骤,而JUnit是最流行的Java单元测试框架。Spring框架提供了丰富的功能,包括依赖注入、AOP...
总结来说,Spring Test和JUnit4的组合为Java开发者提供了一套强大的测试工具,可以方便地对Spring应用进行单元测试和集成测试。通过合理的注解使用和测试设计,我们可以确保代码的质量和系统的稳定性。在实际项目...
Spring Junit单元测试加载配置文件失败问题解决方法 在软件开发过程中,单元测试是一个非常重要的步骤,它可以帮助开发者检测代码中的错误、提高代码的可靠性和稳定性。Spring Junit是一个常用的单元测试框架,它...
为了更好地模拟实际运行环境,我们可能需要在Spring配置文件中定义一些mock bean,或者使用`@MockBean`和`@SpyBean`等Spring Boot测试注解来创建mock对象。这样,我们可以在测试中控制这些mock对象的行为,以便更...
在结合JUnit4进行测试时,我们需要使用Spring的`@ContextConfiguration`注解来加载Spring配置文件,这样可以确保在测试环境中也能注入正确的依赖。例如: ```java @RunWith(SpringJUnit4ClassRunner.class) @...