`
kanpiaoxue
  • 浏览: 1789857 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

spring h2 junit 编写单元测试

 
阅读更多

最近在看maven。下面给出一个符合maven结构的用spring嵌入H2数据库,进行的单元测试:

 

h2-schema.sql

CREATE TABLE TEST(ID INT PRIMARY KEY, NAME VARCHAR);
CREATE TABLE USER(ID INT(11) PRIMARY KEY, NAME VARCHAR(100), AGE INT(2));

 

h2-test-data.sql

INSERT INTO TEST VALUES(1, 'Hello World');
INSERT INTO USER VALUES(1, 'Hello World01', 1);
INSERT INTO USER VALUES(2, 'Hello World02', 2);
INSERT INTO USER VALUES(3, 'Hello World03', 3);
INSERT INTO USER VALUES(4, 'Hello World04', 4);
INSERT INTO USER VALUES(5, 'Hello World05', 5);
INSERT INTO USER VALUES(6, 'Hello World06', 6);
INSERT INTO USER VALUES(7, 'Hello World07', 7);
INSERT INTO USER VALUES(8, 'Hello World08', 8);
INSERT INTO USER VALUES(9, 'Hello World09', 9);
INSERT INTO USER VALUES(10, 'Hello World10', 10);
INSERT INTO USER VALUES(11, 'Hello World11', 11);
INSERT INTO USER VALUES(12, 'Hello World12', 12);
INSERT INTO USER VALUES(13, 'Hello World13', 13);
INSERT INTO USER VALUES(14, 'Hello World14', 14);
INSERT INTO USER VALUES(15, 'Hello World15', 15);
INSERT INTO USER VALUES(16, 'Hello World16', 16);
INSERT INTO USER VALUES(17, 'Hello World17', 17);
INSERT INTO USER VALUES(18, 'Hello World18', 18);
INSERT INTO USER VALUES(19, 'Hello World19', 19);
INSERT INTO USER VALUES(20, 'Hello World20', 20);
INSERT INTO USER VALUES(21, 'Hello World21', 21);
INSERT INTO USER VALUES(22, 'Hello World22', 22);
INSERT INTO USER VALUES(23, 'Hello World23', 23);
INSERT INTO USER VALUES(24, 'Hello World24', 24);
INSERT INTO USER VALUES(25, 'Hello World25', 25);
INSERT INTO USER VALUES(26, 'Hello World26', 26);
INSERT INTO USER VALUES(27, 'Hello World27', 27);
INSERT INTO USER VALUES(28, 'Hello World28', 28);
INSERT INTO USER VALUES(29, 'Hello World29', 29);
INSERT INTO USER VALUES(30, 'Hello World30', 30);
INSERT INTO USER VALUES(31, 'Hello World31', 31);
INSERT INTO USER VALUES(32, 'Hello World32', 32);
INSERT INTO USER VALUES(33, 'Hello World33', 33);
INSERT INTO USER VALUES(34, 'Hello World34', 34);
INSERT INTO USER VALUES(35, 'Hello World35', 35);
INSERT INTO USER VALUES(36, 'Hello World36', 36);
INSERT INTO USER VALUES(37, 'Hello World37', 37);
INSERT INTO USER VALUES(38, 'Hello World38', 38);
INSERT INTO USER VALUES(39, 'Hello World39', 39);
INSERT INTO USER VALUES(40, 'Hello World40', 40);
INSERT INTO USER VALUES(41, 'Hello World41', 41);
INSERT INTO USER VALUES(42, 'Hello World42', 42);
INSERT INTO USER VALUES(43, 'Hello World43', 43);
INSERT INTO USER VALUES(44, 'Hello World44', 44);
INSERT INTO USER VALUES(45, 'Hello World45', 45);
INSERT INTO USER VALUES(46, 'Hello World46', 46);
INSERT INTO USER VALUES(47, 'Hello World47', 47);
INSERT INTO USER VALUES(48, 'Hello World48', 48);
INSERT INTO USER VALUES(49, 'Hello World49', 49);
INSERT INTO USER VALUES(50, 'Hello World50', 50);
INSERT INTO USER VALUES(51, 'Hello World51', 51);
INSERT INTO USER VALUES(52, 'Hello World52', 52);
INSERT INTO USER VALUES(53, 'Hello World53', 53);
INSERT INTO USER VALUES(54, 'Hello World54', 54);
INSERT INTO USER VALUES(55, 'Hello World55', 55);
INSERT INTO USER VALUES(56, 'Hello World56', 56);
INSERT INTO USER VALUES(57, 'Hello World', 32);
INSERT INTO USER VALUES(58, 'Hello World', 32);
INSERT INTO USER VALUES(59, 'Hello World', 32);
INSERT INTO USER VALUES(60, 'Hello World', 32);

 

test-spring-h2-application.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:jdbc="http://www.springframework.org/schema/jdbc" xmlns:jee="http://www.springframework.org/schema/jee"
	xmlns:jms="http://www.springframework.org/schema/jms" xmlns:lang="http://www.springframework.org/schema/lang"
	xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:oxm="http://www.springframework.org/schema/oxm"
	xmlns:p="http://www.springframework.org/schema/p" xmlns:sec="http://www.springframework.org/schema/security"
	xmlns:task="http://www.springframework.org/schema/task" xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:util="http://www.springframework.org/schema/util"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
		http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
		http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd
		http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.0.xsd
		http://www.springframework.org/schema/jms http://www.springframework.org/schema/jms/spring-jms-3.0.xsd
		http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang-3.0.xsd
		http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
		http://www.springframework.org/schema/oxm http://www.springframework.org/schema/oxm/spring-oxm-3.0.xsd
		http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.0.xsd
		http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.0.xsd
		http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
		http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd">

	<jdbc:embedded-database id="dataSource" type="H2">
		<jdbc:script location="classpath:h2-schema.sql" />
		<jdbc:script location="classpath:h2-test-data.sql" />
	</jdbc:embedded-database>

	<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
		<property name="dataSource" ref="dataSource" />
	</bean>

</beans>

 

DataAccessUnitTestTemplateForH2Test.java

package org.kanpiaoxue.test.h2;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

/**
 * <pre>
 * @author kanpiaoxue<br>
 * @date 2014年1月13日<br>
 * @Copyright kanpiaoxue.org [2004-2014]<br>
 * @Description : 测试Spring对嵌入式数据H2的支持。
 * 	H2用来做jUnit的测试数据库
 * </pre>
 */
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath*:test-spring-h2-application.xml")
public class DataAccessUnitTestTemplateForH2Test {
	private JdbcTemplate jdbcTemplate;
	@Autowired
	private ApplicationContext applicationContext;

	@Before
	public void setUp() {
		jdbcTemplate = applicationContext.getBean("jdbcTemplate",
				JdbcTemplate.class);
	}

	/**
	 *<pre>
	 *	测试jdbcTemplate是否被正确的创建
	 *</pre>
	 */
	@Test
	public void testJdbcTemplate() {
		System.out.println("jdbcTemplate:"+jdbcTemplate);
		assertTrue(jdbcTemplate != null);
	}
	
	@Test
	public void testTableTest() {
		Object[] args = { 1 };
		String name = jdbcTemplate.queryForObject(
				"select name from test where id= ?", args, String.class);
		System.out.println("=======>name:" + name);

		assertEquals("Hello World", name);
	}

	@Test
	public void testTableUser() {
		Object[] args = { 1 };
		int age = jdbcTemplate.queryForObject(
				"select age from user where id= ?", args, Integer.class).intValue();
		System.out.println("=======>age:" + age);

		assertEquals(1, age);
	}
	@Test
	public void testTableUserLike() {
		Object[] args = { "%Hello World%" };
		int count = jdbcTemplate.queryForObject(
				"select count(1) from user where name like ?", args, Integer.class).intValue();
		System.out.println("=======>count:" + count);
		
		assertEquals(60, count);
	}
	@Test
	public void testTableUserObject() {
		
		Object[] args = { "%Hello World%" };
		List<String> list = jdbcTemplate.query(
				"select * from user where name like ?", args, new RowMapper<String>(){

					@Override
					public String mapRow(ResultSet rs, int rowNum)
							throws SQLException {
						return rs.getString("name");
					}});
		System.out.println("=======>list:" + list);
		
		assertEquals(60, list.size());
	}

	@After
	public void tearDown() {
		//do nothing
	}

}

 

DataAccessUnitTestTemplateForH2Test.java 在maven项目中的全路径如下:

src/test/java/org/kanpiaoxue/test/h2/DataAccessUnitTestTemplateForH2Test.java

 运行maven命令: mvn clean test

结果如下:

E:\workspace_study\testAll>mvn clean test
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building testAll 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.4.1:clean (default-clean) @ testAll ---
[INFO] Deleting E:\workspace_study\testAll\target
[INFO]
[INFO] --- maven-resources-plugin:2.5:resources (default-resources) @ testAll ---
[debug] execute contextualize
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 4 resources
[INFO]
[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ testAll ---
[INFO] Compiling 40 source files to E:\workspace_study\testAll\target\classes
[INFO]
[INFO] --- maven-resources-plugin:2.5:testResources (default-testResources) @ testAll ---
[debug] execute contextualize
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 3 resources
[INFO]
[INFO] --- maven-compiler-plugin:2.3.2:testCompile (default-testCompile) @ testAll ---
[INFO] Compiling 1 source file to E:\workspace_study\testAll\target\test-classes
[INFO]
[INFO] --- maven-surefire-plugin:2.10:test (default-test) @ testAll ---
[INFO] Surefire report directory: E:\workspace_study\testAll\target\surefire-reports

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running org.kanpiaoxue.test.h2.DataAccessUnitTestTemplateForH2Test
log4j: reset attribute= "false".
log4j: Threshold ="null".
log4j: Retreiving an instance of org.apache.log4j.Logger.
log4j: Setting [org.springframework] additivity to [true].
log4j: Level value for org.springframework is  [ERROR].
log4j: org.springframework level set to ERROR
log4j: Class name: [org.apache.log4j.ConsoleAppender]
log4j: Parsing layout of class: "org.apache.log4j.PatternLayout"
log4j: Setting property [conversionPattern] to [%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %p %.200l %x --> %m%n].
log4j: Adding appender named [console] to category [org.springframework].
log4j: Class name: [org.apache.log4j.DailyRollingFileAppender]
log4j: Setting property [file] to [/logs/testAll.log].
log4j: Setting property [datePattern] to ['.'yyyy-MM-dd'.log'].
log4j: Parsing layout of class: "org.apache.log4j.PatternLayout"
log4j: Setting property [conversionPattern] to [%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %p %.200l %x --> %m%n].
log4j: setFile called: /logs/testAll.log, true
log4j: setFile ended
log4j: Appender [dailyFile] to be rolled at midnight.
log4j: Adding appender named [dailyFile] to category [org.springframework].
log4j: Retreiving an instance of org.apache.log4j.Logger.
log4j: Setting [org.quartz] additivity to [true].
log4j: Level value for org.quartz is  [ERROR].
log4j: org.quartz level set to ERROR
log4j: Adding appender named [console] to category [org.quartz].
log4j: Adding appender named [dailyFile] to category [org.quartz].
log4j: Retreiving an instance of org.apache.log4j.Logger.
log4j: Setting [com.wanmei] additivity to [true].
log4j: Level value for com.wanmei is  [info].
log4j: com.wanmei level set to INFO
log4j: Adding appender named [console] to category [com.wanmei].
log4j: Adding appender named [dailyFile] to category [com.wanmei].
log4j: Retreiving an instance of org.apache.log4j.Logger.
log4j: Setting [java.lang] additivity to [true].
log4j: Level value for java.lang is  [ERROR].
log4j: java.lang level set to ERROR
log4j: Adding appender named [console] to category [java.lang].
log4j: Adding appender named [dailyFile] to category [java.lang].
log4j: Retreiving an instance of org.apache.log4j.Logger.
log4j: Setting [org.apache] additivity to [true].
log4j: Level value for org.apache is  [ERROR].
log4j: org.apache level set to ERROR
log4j: Adding appender named [console] to category [org.apache].
log4j: Adding appender named [dailyFile] to category [org.apache].
=======>name:Hello World
=======>age:1
=======>count:60
jdbcTemplate:org.springframework.jdbc.core.JdbcTemplate@416b47f
=======>list:[Hello World01, Hello World02, Hello World03, Hello World04, Hello World05, Hello World06, Hello World07, Hello World08, Hello World09, Hello World10, Hello World11, Hello World12, Hello World13, Hello World14, Hello
 World15, Hello World16, Hello World17, Hello World18, Hello World19, Hello World20, Hello World21, Hello World22, Hello World23, Hello World24, Hello World25, Hello World26, Hello World27, Hello World28, Hello World29, Hello Wor
ld30, Hello World31, Hello World32, Hello World33, Hello World34, Hello World35, Hello World36, Hello World37, Hello World38, Hello World39, Hello World40, Hello World41, Hello World42, Hello World43, Hello World44, Hello World45
, Hello World46, Hello World47, Hello World48, Hello World49, Hello World50, Hello World51, Hello World52, Hello World53, Hello World54, Hello World55, Hello World56, Hello World, Hello World, Hello World, Hello World]
Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.883 sec

Results :

Tests run: 5, Failures: 0, Errors: 0, Skipped: 0

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4.129s
[INFO] Finished at: Mon Jan 13 17:34:52 CST 2014
[INFO] Final Memory: 21M/227M
[INFO] ------------------------------------------------------------------------

 pom.xml 如下:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>

	<groupId>org.kanpiaoxue.test</groupId>
	<artifactId>testAll</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>jar</packaging>

	<name>testAll</name>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<spring.version>3.2.6.RELEASE</spring.version>
	</properties>

	<dependencies>

		<!-- database h2 start -->
		<dependency>
			<groupId>com.h2database</groupId>
			<artifactId>h2</artifactId>
			<version>1.3.174</version>
		</dependency>
		<!-- database h2 end -->

		<dependency>
			<groupId>com.google.guava</groupId>
			<artifactId>guava</artifactId>
			<version>15.0</version>
		</dependency>
		<!-- test start -->
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.11</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>org.easymock</groupId>
			<artifactId>easymock</artifactId>
			<version>3.0</version>
		</dependency>
		<!-- test end -->

		<!-- jdbc start -->
		<dependency>
			<groupId>com.oracle</groupId>
			<artifactId>ojdbc6</artifactId>
			<version>11.0</version>
		</dependency>

		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>5.1.27</version>
		</dependency>
		<!-- jdbc end -->


		<!-- commons start -->
		<dependency>
			<groupId>commons-beanutils</groupId>
			<artifactId>commons-beanutils</artifactId>
			<version>1.8.3</version>
		</dependency>
		<dependency>
			<groupId>commons-codec</groupId>
			<artifactId>commons-codec</artifactId>
			<version>1.8</version>
		</dependency>
		<dependency>
			<groupId>commons-collections</groupId>
			<artifactId>commons-collections</artifactId>
			<version>3.2.1</version>
		</dependency>

		<dependency>
			<groupId>commons-dbcp</groupId>
			<artifactId>commons-dbcp</artifactId>
			<version>1.4</version>
		</dependency>
		<dependency>
			<groupId>commons-io</groupId>
			<artifactId>commons-io</artifactId>
			<version>2.4</version>
		</dependency>
		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-lang3</artifactId>
			<version>3.1</version>
		</dependency>

		<dependency>
			<groupId>commons-pool</groupId>
			<artifactId>commons-pool</artifactId>
			<version>1.6</version>
		</dependency>

		<!-- commons end -->


		<!-- log start -->
		<dependency>
			<groupId>commons-logging</groupId>
			<artifactId>commons-logging</artifactId>
			<version>1.1.3</version>
		</dependency>
		<dependency>
			<groupId>org.apache.directory.studio</groupId>
			<artifactId>org.apache.logging.log4j</artifactId>
			<version>1.2.17</version>
		</dependency>
		<!-- slf4j start -->
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-log4j12</artifactId>
			<version>1.7.5</version>
		</dependency>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-api</artifactId>
			<version>1.7.5</version>
		</dependency>
		<!-- slf4j end -->
		<!-- log end -->


		<!-- json start -->
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>fastjson</artifactId>
			<version>1.1.22</version>
		</dependency>
		<!-- json end -->

		<dependency>
			<groupId>javax.transaction</groupId>
			<artifactId>jta</artifactId>
			<version>1.1</version>
		</dependency>

		<dependency>
			<groupId>aopalliance</groupId>
			<artifactId>aopalliance</artifactId>
			<version>1.0</version>
		</dependency>

		<dependency>
			<groupId>javax.mail</groupId>
			<artifactId>mail</artifactId>
			<version>1.4.3</version>
		</dependency>
		<dependency>
			<groupId>javax.activation</groupId>
			<artifactId>activation</artifactId>
			<version>1.1</version>
		</dependency>


		<!-- spring dependences start -->

		<dependency>
			<groupId>org.quartz-scheduler</groupId>
			<artifactId>quartz</artifactId>
			<version>2.2.1</version>
		</dependency>

		<!-- spring dependences end -->


		<!-- jms start -->
		<dependency>
			<groupId>javax.jms</groupId>
			<artifactId>javax.jms-api</artifactId>
			<version>2.0</version>
		</dependency>
		<!-- jms end -->

		<!-- netty start -->
		<dependency>
			<groupId>io.netty</groupId>
			<artifactId>netty</artifactId>
			<version>3.8.0.Final</version>
		</dependency>
		<!-- netty end -->


		<!-- 2D code start -->
		<dependency>
			<groupId>com.google.zxing</groupId>
			<artifactId>core</artifactId>
			<version>2.2</version>
		</dependency>
		<dependency>
			<groupId>com.google.zxing</groupId>
			<artifactId>javase</artifactId>
			<version>2.2</version>
		</dependency>
		<!-- 2D code end -->

		<!-- spring start -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-aop</artifactId>
			<version>${spring.version}</version>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-aspects</artifactId>
			<version>${spring.version}</version>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-beans</artifactId>
			<version>${spring.version}</version>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context</artifactId>
			<version>${spring.version}</version>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-core</artifactId>
			<version>${spring.version}</version>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-expression</artifactId>
			<version>${spring.version}</version>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-instrument</artifactId>
			<version>${spring.version}</version>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-jdbc</artifactId>
			<version>${spring.version}</version>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-jms</artifactId>
			<version>${spring.version}</version>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-orm</artifactId>
			<version>${spring.version}</version>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-oxm</artifactId>
			<version>${spring.version}</version>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-test</artifactId>
			<version>${spring.version}</version>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-tx</artifactId>
			<version>${spring.version}</version>
		</dependency>
		<!-- spring end -->
	</dependencies>
</project>

 

分享到:
评论

相关推荐

    单元测试案例junit +spring mvc +springboot

    综上所述,"单元测试案例junit +spring mvc +springboot"涉及的是使用JUnit进行单元测试,结合Spring MVC和Spring Boot的特点,对服务端代码进行详尽的验证,确保代码的稳定性和可靠性。通过合理的测试策略和工具,...

    Struts+Spring框架下的单元测试[总结].pdf

    对于Action的测试,由于Struts的Action通常会依赖于Spring管理的服务接口,因此在编写单元测试时,需要模拟这些服务的调用。JUnit是常用的Java单元测试框架,可以结合Mockito等库来创建mock对象,模拟Service的行为...

    junit针对spring mvc三层测试

    而JUnit作为Java领域最常用的单元测试框架,可以帮助开发者确保代码的质量和功能的正确性。本测试着重关注Spring MVC架构中的三层:表现层(Presentation Layer)、业务层(Business Logic Layer)和服务数据访问层...

    junit测试spring,hibernate的dao层代码

    `JUnit` 是Java编程语言中最流行的单元测试框架,它允许开发者编写可重复运行的测试用例,以验证代码的正确性。`Spring` 和 `Hibernate` 分别是Java企业级应用中的两大支柱,`Spring` 提供了一个强大的依赖注入容器...

    spring3学习笔记(2)-集成ibatis3进行单元测试

    在Spring中,我们可以使用JUnit和Mockito等工具进行单元测试。针对iBatis的测试,通常会涉及到以下几个步骤: 1. 配置测试环境:创建一个专门为测试用的配置文件,如`test-context.xml`,在这个配置文件中,我们...

    JUnit(针对spring和hibernate)

    JUnit是Java编程语言中最常用的单元测试框架,它允许开发者编写可重复执行的测试代码,以确保应用程序的各个模块正常工作。在与Spring和Hibernate这两个流行框架集成时,JUnit发挥着至关重要的作用,确保了业务逻辑...

    Struts+Spring框架下的单元测试[收集].pdf

    在Struts和Spring框架集成的项目中,单元测试是非常重要的一个环节,它有助于确保代码的正确性和可维护性。单元测试通常是对单个组件,如Action、Service或DAO类进行独立的测试,以验证它们的功能是否按预期工作。...

    springmvc ssh通用的junit测试样例

    在`test_junit`这个文件夹中,可能包含的是使用JUnit编写的测试类,针对Spring MVC的控制器、SSH框架中的业务逻辑和服务进行测试。 测试SSH项目时,通常会做以下几件事: 1. **配置测试环境**:设置Spring的...

    junit学习(十)——Springpring与Hibernate整合的单元测试

    在本篇《junit学习(十)——Spring与Hibernate整合的单元测试》中,我们将探讨如何在Java开发中,利用JUnit进行Spring和Hibernate框架的集成测试。单元测试是软件开发中的重要环节,它能帮助开发者确保代码的质量和...

    Curso_Udemy_testes_integracao_Spring_Boot:Spring Boot e JUnit和Java集成测试

    JUnit是Java领域最广泛使用的单元测试框架,它提供了编写和运行测试用例的API。在Spring Boot中,JUnit与Spring Test模块结合,可以方便地进行基于Spring的应用测试。课程会详细讲解如何定义和运行JUnit测试,包括...

    SpringBoot项目 MockMvc自动化单元测试开发过程

    在实际项目开发中,企业开发不仅要保障业务层与...本文是工作中的开发经验总结,使用的SpringBoot+MockMvc+H2数据库 编写自动化单元测试的开发过程,附带成功运行截图,以及完整的配置文件代码,分享给大家做个参考吧!

    EmployeeManagement:使用Spring Boot,H2,JUnit进行员工管理

    JUnit是Java领域最常用的单元测试框架,它使得开发者可以编写和运行可重复的测试用例,确保代码的质量和功能的正确性。在“EmployeeManagement”项目中,JUnit将用于测试员工管理的相关功能,例如添加、删除、更新...

    Spring Boot 整合 H2 内存数据库实现与应用开发指南

    使用场景及目标:当需要快速建立原型、本地单元测试或者想要熟悉spring生态下内存型数据库的实际运作流程都可以参照本篇文章所提供的完整实例来操作。 其他说明:文中所有的配置项均可以通过properties文件来进行...

    Spring2集成测试

    集成测试是软件开发过程中的关键步骤,它位于单元测试之后,系统测试之前,目的是验证不同模块之间的交互。在Spring框架中,我们可以利用JUnit、TestNG等测试框架,结合Spring的测试支持类库,进行集成测试。 首先...

    spring-h2-isolation-db-test:使用h2的独立测试环境示例

    H2是一款轻量级、高性能的关系型数据库,常用于单元测试和集成测试场景,因为它可以内存运行,启动快速,并且支持多种数据库模式。 在Spring项目中,测试是保证代码质量和系统稳定性的重要环节。使用H2数据库进行...

    springBootTest.zip

    - 使用JUnit:Spring Boot项目通常使用JUnit作为主要的单元测试框架,结合`@RunWith(SpringRunner.class)`来启动Spring测试环境。 - 断言库:如AssertJ和Hamcrest,它们提供了丰富的断言方法,使测试更加清晰和易...

    项目中要用到的小实例

    总结来说,这个压缩包提供了一次学习和实践Spring MVC测试的机会,涵盖了代码编写、单元测试、集成测试等方面的知识,对于提升开发者在实际项目中的测试能力大有裨益。通过阅读和运行这些示例,可以加深对Spring MVC...

    spring-boot-1.5.3.RELEASE

    1. `spring-boot-starter-test`模块:包含了JUnit、Mockito、Hamcrest和JsonPath等测试工具,方便进行单元测试和集成测试。 七、微服务构建 1. Spring Cloud集成:虽然1.5.3.RELEASE可能不包含最新版的Spring ...

    Spring boot小demo

    学习这个“Spring Boot小Demo”,你将了解到如何创建一个基本的Spring Boot应用,包括设置主配置类、编写控制器、配置数据库连接、创建RESTful API,以及如何进行单元和集成测试。此外,通过实践,你还能理解Spring ...

    java spring-boot

    自带测试支持,包括JUnit和Mockito,方便编写单元测试和集成测试。`@SpringBootTest`注解可以启动整个Spring应用上下文,以便进行端到端的测试。 9. **DevTools**: 开发者工具提供了一些增强功能,如热部署、...

Global site tag (gtag.js) - Google Analytics