首页 > 其他分享 >Spring Boot的一个测试用例

Spring Boot的一个测试用例

时间:2022-12-13 21:31:29浏览次数:58  
标签:Spring city2List Boot Assert 测试用例 import org assertNotNull class

 

package tk.mybatis.springboot.mapper;

import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.SpringApplicationConfiguration;
import org.springframework.test.annotation.Rollback;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.web.WebAppConfiguration;
import org.springframework.transaction.annotation.Transactional;
import tk.mybatis.springboot.Application;
import tk.mybatis.springboot.model.City2;

import java.util.ArrayList;
import java.util.List;

/**
* @author liuzh
* @since 2016-03-06 17:42
*/
@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
@Transactional
@SpringApplicationConfiguration(Application.class)
public class MyBatis331Test {
private Logger logger = LoggerFactory.getLogger(getClass());

@Autowired
private MyBatis331Mapper mapper;

@Test
@Rollback
public void testInsertList() {
List<City2> city2List = new ArrayList<City2>();
city2List.add(new City2("石家庄", "河北"));
city2List.add(new City2("邯郸", "河北"));
city2List.add(new City2("秦皇岛", "河北"));
Assert.assertEquals(3, mapper.insertCities(city2List));
for (City2 c2 : city2List) {
logger.info(c2.toString());
Assert.assertNotNull(c2.getId());
}
}

@Test
public void testSelectById(){
City2 city2 = mapper.selectByCityId(1);
logger.info(city2.toString());
Assert.assertNotNull(city2);
Assert.assertNotNull(city2.getCityName());
Assert.assertNotNull(city2.getCityState());
}

@Test
public void testSelectAll(){
List<City2> city2List = mapper.selectAll();
for(City2 c2 : city2List){
logger.info(c2.toString());
Assert.assertNotNull(c2);
Assert.assertNotNull(c2.getCityName());
Assert.assertNotNull(c2.getCityState());
}
}

}

 

@Documented
@Inherited
@Retention(value=RUNTIME)
@Target(value=TYPE)
public @interface SpringApplicationConfiguration
Class-level annotation that is used to determine how to load and configure an ApplicationContext for integration tests.
Similar to the standard ContextConfiguration but uses Spring Boot's SpringApplicationContextLoader.
Author:
Dave Syer
See Also:
SpringApplicationContextLoader

http://docs.spring.io/spring-boot/docs/1.1.x/api/org/springframework/boot/test/SpringApplicationConfiguration.html

 

What you are trying to do can easily be done with the following code:

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = TestContextConfiguration.class)
public class ReportResponseAssemblerTest {

@Autowired
ReportInstanceResponseAssembler reportResponseAssembler;

@Test
public void testPlaceHolder() {
Assert.assertNotNull(reportResponseAssembler);
}
}

@EnableAutoConfiguration
@ComponentScan(basePackages = { "com.blahpackage.service.assembler" })
@Configuration
public class TestContextConfiguration {

}

The three classes you mention need to be under ​​com.blahpackage.service.assembler​​​ and also have to be annotated with some Spring stereotype annotation, like ​​@Component​​​ or ​​@Service​​. For example you would have:

@Component
public class ReportResponseAssembler {

@Autowired
private ParameterResponseAssembler parameterResponseAssembler;

@Autowired
private TimeRangeResponseAssembler timeRangeResponseAssembler;

public ReportResponseAssembler makeResponse() {
return new ReportResponseAssembler();
}
}

@Component
public class ParameterResponseAssembler {
//whatever
}

I would however advise that you use such a test rarely because of the performance implications. What I mean is that if you have a lot of these types of tests, Spring needs to create and destroy a different application context for each one, whereas if you use the same context and tests, Spring can (usually) cache the context. Check out ​​this​​ blog post for more details

​http://stackoverflow.com/questions/26370743/how-to-use-springapplicationconfiguration-or-contextconfiguration-to-load-smalle​

 



标签:Spring,city2List,Boot,Assert,测试用例,import,org,assertNotNull,class
From: https://blog.51cto.com/u_15147537/5935179

相关文章

  • Spring boot Mybatis
    最近刚接触Springboot,正是因为他的及简配置方便开发,促使我下定决心要用它把之前写的项目重构,那么问题来了,springboot怎么整合mybatis呢,下面几个配置类来搞定。在我的代码......
  • 我对jeecg-boot项目的理解、使用心得和改进建议
    jeecg-boot是什么?官方介绍JeecgBoot是一款基于代码生成器的低代码开发平台,零代码开发!采用前后端分离架构:SpringBoot2.x,AntDesign&Vue,Mybatis-plus,Shiro,JWT。强大的代码生......
  • 在springboot使用jsp
    在springboot配置jsp环境在pom.xml中添加配置依赖内容如下:<dependency><groupId>org.springframework.boot</groupId><artifactId>sp......
  • springboot上传图片
    springboot上传图片新建一个springboot项目;在java/main/com/ljx创建一个controller.fileController类内容如下:packagecom.ljx.controller;​importorg.spr......
  • SpringMVC-day01
    SpringMVC_day01今日内容理解SpringMVC相关概念完成SpringMVC的入门案例学会使用PostMan工具发送请求和数据掌握SpringMVC如何接收请求、数据和响应结果掌握RESTfu......
  • spring启动时排除注入指定bean
    起因:项目中引用了其他项目的公共包依赖,公共包中有第三方的配置信息(不合理,不规范),导致必须在配置文件中加入这样配置(写了一堆无用的配置信息还容易报错),启动时注入......
  • nginx反向代理部署springboot项目报404无法加载静态资源
    问题:nginx反向代理部署springboot项目报404无法加载静态资源(css,js,jpg,png...)为什么要用反向代理:springboot默认启动端口为8080,如果需要通过域名(不加端口号)直接访问sprin......
  • Java 基于springBoot 上传文件
    @RequestMapping("/uploadFile")@ResponseBodypublicMap<String,Object>uploadFile(@RequestParam(value="file")MultipartFile[]file,HttpServletRequ......
  • java springboot项目树结构递归查询
    记录工作本文记录树结构递归查询,像菜单栏和部门首先需要一张表CREATETABLE`sys_dict`(`id`intNOTNULLAUTO_INCREMENT,`parent_id`intNOTNULL,`name`......
  • java springboot+rabbitmq+websocket 订阅展示
    记录工作需要的依赖<!--fastjson坐标--><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId>......