使用@SpringBootTest注解进行单元测试_java

来源:脚本之家  责任编辑:小易  

导入junit包,在测试类上添加@Test方法,然后写你的测试数据运行,就可以看到测试结果是绿条成功还是红条失败了www.zgxue.com防采集请勿采集本网。

概述

@SpringBootTest注解是SpringBoot自1.4.0版本开始引入的一个用于测试的注解。基本用法如下:

http://www.cnblogs.com/moonlightL/p/7271304.html

1. 添加Maven依赖

那说明单元测试里面没有包含servercontainer吧,单元测试加载的东西没有项目正规启动以后那么多,需要仔细检查如何在单元测试中加载servercontainer。

org.springframework.boot spring-boot-starter-test

<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.6.RELEASE</version> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>

@Service用于标注业务层组件,是spring提供一个注解,例如:@Service public class VentorServiceImpl implements iVentorService{ }

2. 编写启动入口类

WebApplicationContext 是配置文件吗?是的话放在@ContextConfiguration(locations={"classpath:spring-application.xml"})里面看看 或者把private WebApplicationContext

org.springframework.boot spring-boot-starter-test

@SpringBootApplicationpublic class StartUpApplication { public static void main(String[] args) { SpringApplication.run(StartUpApplication.class, args); }}

3. 编写Controller类

org.springframework.boot spring-boot-starter-test

@RestControllerpublic class HelloController { @RequestMapping("/") public String index() { return "Hello Spring Boot,Index!"; } @RequestMapping(value = "/test", method = RequestMethod.GET) public String test() { return "Spring Boot Test Demo!"; }}

4. 编写测试类

org.springframework.boot spring-boot-starter-test

@RunWith(SpringRunner.class)@SpringBootTest(classes = StartUpApplication.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)public class HelloControllerTest { /** * @LocalServerPort 提供了 @Value("${local.server.port}") 的代替 */ @LocalServerPort private int port; private URL base; @Autowired private TestRestTemplate restTemplate; @Before public void setUp() throws Exception { String url = String.format("http://localhost:%d/", port); System.out.println(String.format("port is : [%d]", port)); this.base = new URL(url); } /** * 向"/test"地址发送请求,并打印返回结果 * @throws Exception */ @Test public void test1() throws Exception { ResponseEntity<String> response = this.restTemplate.getForEntity( this.base.toString() + "/test", String.class, ""); System.out.println(String.format("测试结果为:%s", response.getBody())); }

其中,classes属性指定启动类,SpringBootTest.WebEnvironment.RANDOM_PORT经常和测试类中@LocalServerPort一起在注入属性时使用。会随机生成一个端口号。

总结

我们发现,随着Spring boot 版本的提升,单元测试变得更简单了。

到此这篇关于使用@SpringBootTest注解进行单元测试的文章就介绍到这了,更多相关@SpringBootTest 单元测试内容请搜索真格学网以前的文章或继续浏览下面的相关文章希望大家以后多多支持真格学网! 您可能感兴趣的文章:详解Spring Boot Junit单元测试详解Spring Boot实战之单元测试详解SpringBoot之添加单元测试springboot使用单元测试实战SpringBoot2种单元测试方法解析SpringBoot 单元测试JUnit的使用详解springboot单元测试两种方法实例详解浅谈spring-boot的单元测试中,@Before不被执行的原因Spring Boot 单元测试和集成测试实现详解

 首2113先我们需要先下载相应的 JUnit 相关的 JAR 包,下载的过程可5261以去 JUnit 的官方网站,也4102可以直接通过 Maven 资源仓库来完成1653。  使用简单的 @Test 注解实现我们的测试方法的编写和执行  准备工作做好之后,接下来我们就可以开始尝试编写壹个简单的测试代码了。首先,我们编写了壹个 Calculator 类,并提供五个方法分别完成加减乘除以及求平方的运算。代码如下:  package net.oschina.bairrfhoinn.main;  public class Calculator {  public void add(int n){  result += n;  }  public void substract(int n){  result -= n;  }  public void multiply(int n){  result *= n;  }  public void divide(int n){  result /= n;  }  public void square(int n){  result = n * n;  }  public int getReuslt(){  return result;  }  public void clear(){  result = 0;  }  private static int result;  }    在测试类中用到了JUnit4框架,自然要把相应地Package包含进来。最主要地一个Package就是org.junit.*。把它包含进来之后,绝大部分功能就有了。还有一句话也非常地重要“import static org.junit.Assert.*;”,我们在测试的时候使用的壹系列assertEquals()方法就来自这个包。大家注意壹下,这是壹个静态包含(static),是JDK5中新增添的壹个功能。也就是说,assertEquals是Assert类中的壹系列的静态方法,壹般的使用方式是Assert. assertEquals(),但是使用了静态包含后,前面的类名就可以省略了,使用起来更加的方便。  另外要注意的是,我们的测试类是壹个独立的类,没有任何父类。测试类的名字也可以任意命名,没有任何局限性。所以我们不能通过类的声明来判断它是不是一个测试类,它与普通类的区别在于它内部的方法的声明,我们接着会讲到。在测试类中,并不是每壹个方法都是用于测试的,所以我们必须使用“注解”来明确表明哪些是测试方法。“注解”也是JDK5的壹个新特性,用在此处非常恰当。我们可以看到,在某些方法的前有@Before、@Test、@Ignore等字样,这些就是注解,以壹个“@”作为开头。这些注解都是JUnit4自定义的,熟练掌握这些注解的含义,对于编写恰当的测试类非常重要内容来自www.zgxue.com请勿采集。


  • 本文相关:
  • springboot application注解原理及代码详解
  • springboot实现钉钉机器人消息推送的示例代码
  • java抛出异常与自定义异常类应用示例
  • java 锁粗化与循环问题
  • 详解spring学习之编程式事务管理
  • java中的日期时间类用法总结
  • spring cloud入门教程之zuul实现api网关与请求过滤
  • springboot中的异常处理与参数校验的方法实现
  • java实现登录之后抓取数据
  • mybatis学习教程(六)-调用存储过程
  • @test 怎么进行单元测试 java
  • java如何使用JUnit进行单元测试
  • java spring项目的controller层的代码怎么用junit...
  • Spring boot main里的class怎么使用test单元测试类...
  • 如何junit和spring注解进行整合做单元测试
  • Spring Boot中使用Test单元测试报错javax.websocke...
  • @springboottest需要哪个jar包
  • 怎么对service层进行单元测试,我使用的是注解方式
  • springmvc 使用junit4对controller进行单元测试报错
  • springboot怎么做单元测试
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全c#教程vbvb.netc 语言java编程delphijavaandroidiosswiftscala易语言汇编语言其它相关首页详解spring boot junit单元测试详解spring boot实战之单元测试详解springboot之添加单元测试springboot使用单元测试实战springboot2种单元测试方法解析springboot 单元测试junit的使用详解springboot单元测试两种方法实例详解浅谈spring-boot的单元测试中,@before不被执行的原因spring boot 单元测试和集成测试实现详解springboot application注解原理及代码详解springboot实现钉钉机器人消息推送的示例代码java抛出异常与自定义异常类应用示例java 锁粗化与循环问题详解spring学习之编程式事务管理java中的日期时间类用法总结spring cloud入门教程之zuul实现api网关与请求过滤springboot中的异常处理与参数校验的方法实现java实现登录之后抓取数据mybatis学习教程(六)-调用存储过程java使double保留两位小数的多方java8 十大新特性详解intellij idea 2020最新激活码(亲java.net.socketexception: connjava写入文件的几种方法分享java环境变量的设置方法(图文教程java 十六进制与字符串的转换java list用法示例详解java中file类的使用方法javaweb实现文件上传下载功能实例java元注解@inherited的使用详解详解java中的深拷贝和浅拷贝(clone()方法一篇文章彻底搞懂面试中常被问的各种“锁mybatis拦截器:给参数对象属性赋值的实例全面解析springboot自动配置的实现原理java在线打开word文档并强制留痕的方法全面解析java观察者模式hibernate5新特性介绍简介java的hibernate框架中的session和持java10下编译lombok注解代码分享
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved