项目1在线交流平台-8.项目总结与部署-1. SpringBoot整合Junit单元测试

项目1在线交流平台-8.项目总结与部署-1. SpringBoot整合Junit单元测试,第1张

文章目录
    • 功能需求
    • 一、保证测试方法独立性
      • `@BeforeClass`
      • `@AfterClass`
      • `@Before`
      • `@After`
    • 二、测试结果分析
      • `Assert`

参考牛客网高级项目教程

功能需求

  • 系统上线前需要多次测试
  • 之前Spring整合Junit进行局部方法测试,但又弊端,即测试方法不独立,数据不独立,如果测试不止一次,有可能数据被别的方法修改,因此,会影响测试结果
  • 因此,为了解决这个问题,需要使用Spring注解,保证测试方法的独立性
一、保证测试方法独立性 @BeforeClass
  • 在当前类加载前,处理数据,只处理一次
  • 常用于初始化静态变量数据
@BeforeClass
public static void beforeClass() {
    System.out.println("beforeClass");
}
@AfterClass
  • 在当前类处理后,处理数据,只处理一次
  • 常用于关闭资源
@AfterClass
public static void afterClass() {
    System.out.println("afterClass");
}
@Before
  • 在所有方法前,调用此方法,对数据进行处理
  • 例如本案例中的初始化一条帖子数据,每次测试方法前,均会对帖子进行初始化
@Before
public void before() {
    System.out.println("before");

    // 初始化测试数据
    data = new DiscussPost();
    data.setUserId(111);
    data.setTitle("Test Title");
    data.setContent("Test Content");
    data.setCreateTime(new Date());
    discussPostService.insertPost(data);
}
@After
  • 在所有测试方法执行后调用此注解标注的方法
  • 常用于对测试数据的删除,以免影响正式数据
@After
public void after() {
    System.out.println("after");

    // 删除测试数据
    discussPostService.updatePostStatus(data.getId(), 2);
}
二、测试结果分析 Assert
  • Junit的类,测试中无需打印,可用于截断,如果又问题,会报错
@Test
public void testUpdateScore() {
    int rows = discussPostService.updateScore(data.getId(), 2000.00);
    Assert.assertEquals(2, rows); // 故意造错
    
    DiscussPost post = discussPostService.selectPostById(data.getId());
    Assert.assertEquals(2000.00, post.getScore(), 2);
}
  • 例如,上例中故意造了一个错,控制显示如下:

  • 存入数据库的时间比实际的实际多1秒

    java代码中和mysql数据库中时间相差1秒问题? - 百度文库 (baidu.com)

@Test
public void testFindById() {
    DiscussPost post = discussPostService.selectPostById(data.getId());
    Assert.assertNotNull(post);
    System.out.println(data.getCreateTime());
    System.out.println(post.getCreateTime());// 存入数据库的时间比实际的实际多1秒
    Assert.assertEquals(data.toString(), post.toString());
}

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/733870.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-27
下一篇 2022-04-27

发表评论

登录后才能评论

评论列表(0条)

保存