开发者学堂课程【SpringBoot 实战教程: SpringBoot 整合测试】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/651/detail/10779
SpringBoot 整合测试
1、springboot 整合测试需要依赖两个包,这两个包分别是 starter-test 和 junit。
2、在创建的子工程中依赖,打开 pom,<scope> test </ scope>
测试只是用于测试阶段,它们的 scope 是 test 范围,写一个 controller,命名为 springcontroller。
3、加上 controller 注解,写一个返回字符串的功能。把程序启动的入口也写在 controller 中,让 springboot 实现自动配置,测试 controller 是否能正常访问。
@Controller
@EnableAutoConfiquration
public class SpringController
{
@RequestMapping(" /hello")
@ResponseBody
public string yes ()
{
return"hello";
}
public static void main (String [ ]args )
{
SpringApplication. run (SpringController.class, args) ;
}
4、在网页中输入 http://localhost:8080/hello
。
controller
可以正常访问。
5、首先在 src/test/java 下创建一个子包,命名为 com.qianfeng.test。
6、写一个测试类,命名 为 testspringcontroller。
7、通过 springboottest 指名测试什么,通过 classes 指名测试谁,测试的功能在 springcontroller 里面,所以指名 springcontroller.class,通过 runwith 指名测试的类是谁,通过注解 webappconfiguration 整合 springboot-web。
@SpringBootTest (classes=SpringController.class)
@RunWith (SpringJUnit4ClassRunner .class)
@WebAppConfiguration
8、写一个测试功能,因为测试是 springcontroller 里面的一个功能,所以需要把 controller 它的对象进行注入。需要测试 springcontroller 功能 yes,看一下是否和期望值一样,把期望值写成 hello。
public class TestSpringController
{
@Autowired
private SpringController springController;
@Test
public void test1 ()
{
TestCase. assertEquals (this. springController.yes(), "hello") ;
}
这个就是 springboot 整合测试的写法。
9、运行测试方法。左边出现进度条,就证明测试成功了。
10、如果把期望值改成 helloworld,再运行,左边可以看到报错,具体错误有比较失败,说明期望值和返回值不一致导致测试失败。