一.单体测试总结
1.有回滚
Spring创建容器的时候所有的插入修改不生效,顺利回滚。
@TransavtionConfiguration(defaultRollback = true)
@Transactional
保证可以无限次运行测试类
2.要有assert
结果比较
Assert.assertTrue(result == null);
另 可以mock运行中的值
3.多线程测试
引入jdk中的 countDownLatch(100);
for(int i=0;i<14;i++){
Thread t = new Thread(new ExcteThread())
t.start();
latch.countDown();
多线程时在类上的事务注解会失效,因为新的线程脱离了本方法的事务。
所以需要手动删除
//@TransavtionConfiguration(defaultRollback = true)
// @Transactional
@After
public void destory() throws Exception{
menuInfoService.deleteMenuinfoByName("senvon");
}
easymock可以不用,自己模拟一个服务
单元测试不应该依赖外部环境
coverage跑覆盖率
二.具体实现
现在使用Junit4生成测试类
spring环境下的JUnit4测试
1,下载所需jar包:
spring-test-3.2.0.RELEASE.jar
junit-4.11.jar
commons-dbcp-1.4.jar
测试Spring的Controller
测试用例代码CreateProductControllerTest.java
import static org.junit.Assert.*;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import javax.annotation.Resource;
import org.springframework.http.HttpMethod;
import org.springframework.mock.web.MockHttpServletRequest;
import org.springframework.mock.web.MockHttpServletResponse;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.transaction.TransactionConfiguration;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.servlet.ModelAndView;
@Transactional
@TransactionConfiguration(transactionManager = "txManager", defaultRollback = true)
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath:spring-servlet.xml", "classpath:spring-dao-test.xml", "classpath:spring-service-test.xml"})
public class CreateProductControllerTest
{
@Resource(name="/createProduct.htm")
CreateProductController createProductController;
private MockHttpServletRequest request;
private MockHttpServletResponse response;
@Before
public void before()
{
request = new MockHttpServletRequest();
response = new MockHttpServletResponse();
request.setCharacterEncoding("UTF-8");
}
@Test
public void testToSearchPage()
{
//request.setRequestURI("createProduct.htm");
//request.setMethod(HttpMethod.POST.name());
ModelAndView mv = null;
try
{
mv = createProductController.toSearchPage(request, response);
}
catch (Exception e)
{
e.printStackTrace();
fail("testToSearchPage failed!");
}
assertNotNull(mv);
assertEquals(response.getStatus(), 200);
}
}
分享到:
相关推荐
单元测试实施规程是软件开发过程中一个关键的质量保证环节,它旨在确保软件的每个独立模块都能按照预期的功能正确运行。以下是对这一规程的详细说明: 1. **目的**:单元测试的主要目的是验证软件的各个模块(任务...
"Tessy单元测试提高软件质量" 单元测试是软件测试中的一种重要方法,旨在确保软件的质量和可靠性。在本White Paper中,我们将讨论单元测试的重要性、方法论和实践应用。 单元测试的定义和重要性 单元测试是指对...
软件单元测试报告 软件单元测试报告是软件开发过程中的一种重要文档,它记录了软件单元测试的结果和过程。下面是该报告的知识点总结: 一、软件单元测试报告的组成部分 软件单元测试报告通常由以下几个部分组成:...
单元测试说明模板 单元测试是一种软件测试方法,它通过在单元层面上对软件的每个组件进行测试,以确保每个组件都能正确地执行其功能。单元测试是软件测试的基础,是软件开发过程中不可或缺的一部分。 单元测试的...
在软件开发过程中,单元测试是一项至关重要的质量保证活动,它能帮助开发者确保代码的正确性和稳定性。本资源“软件单元测试入门与实践”由周立功撰写,专注于C和C++编程语言,提供了对单元测试的基本理解及实际操作...
在.NET开发过程中,单元测试是一项至关重要的任务,它有助于确保代码的质量、可维护性和稳定性。单元测试允许开发者独立地测试代码的各个部分,确保每个功能模块都能按预期工作。本案例将深入探讨如何在.NET环境中...
(C#语言版)单元测试实例,主要功能包括:(1)输入数据到textbox,以逗号间隔,然后求数组最大值、求和,并将结果显示出来,并针对于数组求最大值函数和求和函数写单元测试代码;(2)连接数据库,写出单元测试代码来测试求...
《×××单元测试报告》是对软件开发过程中某一模块或组件进行独立验证的文档,它详细记录了单元测试的过程、结果以及可能遇到的问题。单元测试是软件开发中的关键环节,旨在确保代码的各个部分按预期工作,从而提高...
在软件开发过程中,单元测试是一种重要的质量保证手段,它针对代码的最小可测试单元——函数、方法或类,进行独立验证。本示例主要聚焦于C++编程语言中的单元测试,我们将探讨如何进行白盒测试的基本实现方法和结构...
在V模型开发中,Tessy主要应用在单元测试和集成测试阶段。单元测试通过运行代码检测出函数中错误,比如算法错误、接口问题等;集成测试则在单元测试的基础上验证单元之间接口的正确性。基于越早发现bug开发成本越低...
"软件单元测试——JUnit使用" 软件单元测试是软件开发过程中的一种测试方法,它是指对软件中的最小单元进行测试,以确保软件的可靠性和正确性。JUnit是一个流行的Java测试框架,广泛应用于软件单元测试中。 在本...
Struts2SpringUnitDemo是一个示例项目,展示了如何在Java应用程序中将Struts2和Spring框架进行集成,并进行单元测试。这两个框架都是Java Web开发中的关键组件,Struts2负责控制层逻辑,Spring则提供了全面的依赖...
在软件开发领域,尤其是汽车电子软件的开发过程中,单元测试是一项至关重要的质量保证步骤。单元测试是对软件中的最小可测试单元进行检查,通常是函数、方法或类,以确保它们按照预期工作。它有助于早期发现和修复...
3、启动Testbed的单元测试模块(使用Unit Test only) 4、测试执行前准备:建立Sequence,配置Code Coverage,配置Test Environment。 5、创建测试用例 创建测试用例,右键点击被测函数名称即可弹出“Create New ...
【Junit单元测试完整案例】深入解析 在软件开发中,单元测试是验证代码功能是否正确、独立单元是否按预期工作的关键步骤。Junit作为Java领域最常用的单元测试框架,为开发者提供了简单易用的API来进行测试。本案例...
根据提供的文件信息,“单元测试之道Java版.pdf(高清)”主要介绍了在Java开发环境中进行单元测试的方法、策略及最佳实践等内容。以下将基于该文件的标题、描述、标签以及部分内容来详细阐述相关的知识点。 ### ...
### 单元测试理论与实践 #### 一、单元测试的概念与目的 单元测试是对软件基本组成单元进行的测试,其主要目标在于发现各模块内部可能存在的各种错误。这些错误通常包括但不限于设计缺陷、需求理解偏差以及编码...