spring集成测试环境的搭建

2019-09-28  本文已影响0人  dancer4code

1.加入依赖包

使用Spring的测试框架需要加入以下依赖包:

2. 创建测试源目录和包

创建一个和src下面与main同级创建test目录(测试目录),基本上大的框架(像spring的测试文件就是这样的,这已经是默认的了)。

3. 创建测试类

创建一个测试用的类,推荐名称为 “被测试类名称 + Test”。 创建测试类通常的两种方式:

  1. 根据需求继承必须的类

  2. 根据需求加上必须的注解

第一种方式:测试类应该继承与 AbstractJUnit4SpringContextTests 或 AbstractTransactionalJUnit4SpringContextTests

第二种方式:使用注解

4. 通过JUnit 4 执行或maven自动执行

5.测试代码解释(测试Controller层)

code

@Transactional//每次都开启一个事务
@WebAppConfiguration//测试环境使用,用来表示测试环境使用的ApplicationContext将是WebApplicationContext类型的;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath*:spring-*.xml"})
@TransactionConfiguration(transactionManager = "transactionManager", defaultRollback = true)
public class BaseSpringJUnit {
    //执行@Test标注的方法之前都执行这个方法
    @Before
    public void setUp() throws Exception {
        //to doing somthing 
    }
    //执行@Test标注的方法之之后都执行这个方法
    @After
    public void tearDown() throws Exception {
        //to doing somthing
    }
    //测试方法
    @Test
    public void testPrint(){
        //to doing somthing
    }
}

@Transactional:每次都开启一个事务

@WebAppConfiguration:测试环境使用,用来表示测试环境使用的ApplicationContext将是WebApplicationContext类型的;

@ContextConfiguration(locations = {"classpath:spring-.xml"}):Spring整合JUnit4测试时,使用注解引入多个配置文件

@RunWith(SpringJUnit4ClassRunner.class)和@TransactionConfiguration(transactionManager = "transactionManager", defaultRollback = true)上面已经过

其中:

mockMvc.perform(post("/a/pro/unit/list").param("name", "s")).andExpect(MockMvcResultMatchers.view().name("modules/pro/unitList")) 
.andExpect(MockMvcResultMatchers.model().attributeExists("page")) 
.andExpect(MockMvcResultMatchers.jsonPath("$.code").value("10000")) 
.andDo(MockMvcResultHandlers.print()) 
.andReturn();

其中使用MockMvcResultMatchers.jsonPath("$.code").value("10000"),需要导入jar包

pom.xml配置需要加上

 <dependency>
            <groupId>com.jayway.jsonpath</groupId>
            <artifactId>json-path</artifactId>
            <version>0.8.1</version>
            <scope>test</scope>
        </dependency>
      <dependency>
            <groupId>com.jayway.jsonpath</groupId>
            <artifactId>json-path-assert</artifactId>
            <version>0.8.1</version>
            <scope>test</scope>
    </dependency>

最后整个过程:

上一篇下一篇

猜你喜欢

热点阅读