springboot junit单元测试

Posted haohao1234

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springboot junit单元测试相关的知识,希望对你有一定的参考价值。

一·Junit的使用

1.1 添加junit的依赖

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
</dependency>

1.2 基础使用

@RunWith(SpringRunner.class)
@SpringBootTest
public class GirlServiceTest {
    @Autowired
    GirlService girlService;
    
    @Test
    public void findOneTest() {
        Girl girl = girlService.findOne(8);
        Assert.assertEquals(new Integer(10), girl.getAge());
    }
}

Run as ->Junit test 后可在控制台查看执行结果

1.3 注解说明

  • @RunWith:标识为Junit的运行环境
  • @SpringBootTest:获取启动类,加载配置,确定装载springboot
  • @Test
  • @BeforeClass:针对所有测试,只执行一次,且必须为static void;
  • @AfterClass:针对所有测试,只执行一次,且必须为static void;
  • @Before:每个测试方法前都会执行的方法;
  • @After:每个测试方法前都会执行的方法;
  • @Ignore:忽略方法;

1.4 断言

断言就是判断是否和期望值相符合

  • Assert.assertEquals 对比两个值相等
  • Assert.assertNotEquals 对比两个值不相等
  • Assert.assertSame 对比两个对象的引用相等
  • Assert.assertArrayEquals 对比两个数组相等
  • Assert.assertTrue 验证返回是否为真
  • Assert.assertFlase 验证返回是否为假
  • Assert.assertNull 验证null
  • Assert.assertNotNull 验证非null

1.5 WEB模拟测试

使用MockMvc对web进行测试

@RunWith(SpringRunner.class)
@SpringBootTest
@AutoConfigureMockMvc
public class GirlControllerTest {
    @Autowired
    private MockMvc mvc;
    
    @Test
    public void girlList() throws Exception {
        mvc.perform(MockMvcRequestBuilders.get("/girls/getAge/8"))
            .andExpect(MockMvcResultMatchers.status().isOk());
            //.andExpect(MockMvcResultMatchers.content().string("abc"));
    }
}

@AutoConfigureMockMvc:配合上@Autowired就可以自动的注册所有添加@Controller或者@RestController的路由的MockMvc了

问题:/girl/girls/getAge/8返回404,因为在application.yml中context-path=girl,这里不需要根路径。

以上是关于springboot junit单元测试的主要内容,如果未能解决你的问题,请参考以下文章

SpringBoot与单元测试JUnit的结合

Springboot集成JUnit5优雅进行单元测试

SpringBoot 集成JUnit

SpringBoot2---单元测试(Junit5)

springboot2单元测试和指标监控

Springboot2_单元测试