• JUnit进行单元测试


    首先需要导入相应的jar和安装插件

    创建单元测试类:

    1. public class TestMain {
    2. @Test
    3. public void method(){
    4. System.out.println("我是测试用例1");
    5. }
    6. @Test
    7. public void method2(){
    8. System.out.println("我是测试用例2");
    9. }
    10. }

    可以点击类前面的测试按钮,或是单个方法前的测试按钮,如果点击类前面的测试按钮,会执行所有的测试用例。

    测试方法有以下要求:

    * 方法必须是public的

    * 不能是静态方法

    * 返回值必须是void

    * 必须是没有任何参数的方法

    通过断言工具类来进行期望值的判定 

    1. public class TestMain {
    2. @Test
    3. public void method(){
    4. System.out.println("我是测试案例!");
    5. Assert.assertEquals(1, 2); //参数1是期盼值,参数2是实际测试结果值
    6. }
    7. }

    通过运行代码后,我们发现测试过程中抛出了一个错误,并且IDEA给我们显示了期盼结果和测试结果

    其他案例

    1. @Test
    2. public void method(){
    3. int[] arr = {0, 4, 5, 2, 6, 9, 3, 1, 7, 8};
    4. //错误的冒泡排序
    5. for (int i = 0; i < arr.length - 1; i++) {
    6. for (int j = 0; j < arr.length - 1 - i; j++) {
    7. if(arr[j] > arr[j + 1]){
    8. int tmp = arr[j];
    9. arr[j] = arr[j+1];
    10. arr[j+1] = tmp;
    11. }
    12. }
    13. }
    14. Assert.assertArrayEquals(new int[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, arr);
    15. }

     

    1. @Test
    2. public void method(){
    3. try (SqlSession sqlSession = MybatisUtil.getSession(true)){
    4. TestMapper mapper = sqlSession.getMapper(TestMapper.class);
    5. Student student = mapper.getStudentBySidAndSex(1, "男");
    6. Assert.assertEquals(new Student().setName("小明").setSex("男").setSid(1), student);
    7. }
    8. }

     通过`@Before`注解来添加测试用例开始之前的前置操作

    1. @Before
    2. public void before(){
    3. System.out.println("测试前置正在初始化...");
    4. System.out.println("测试初始化完成,正在开始测试案例...");
    5. }
    6. @Test
    7. public void method1() {
    8. System.out.println("我是测试用例1");
    9. }
    10. @Test
    11. public void method2(){
    12. System.out.println("我是测试用例2");
    13. }

    输出

    测试前置正在初始化...
    测试初始化完成,正在开始测试案例...
    我是测试用例1
    测试前置正在初始化...
    测试初始化完成,正在开始测试案例...
    我是测试用例2 

    1. public class TestMain {
    2. private SqlSessionFactory sqlSessionFactory;
    3. @Before
    4. public void before(){
    5. System.out.println("测试前置正在初始化...");
    6. try {
    7. sqlSessionFactory = new SqlSessionFactoryBuilder()
    8. .build(new FileInputStream("mybatis-config.xml"));
    9. } catch (FileNotFoundException e) {
    10. e.printStackTrace();
    11. }
    12. System.out.println("测试初始化完成,正在开始测试案例...");
    13. }
    14. @Test
    15. public void method1(){
    16. try (SqlSession sqlSession = sqlSessionFactory.openSession(true)){
    17. TestMapper mapper = sqlSession.getMapper(TestMapper.class);
    18. Student student = mapper.getStudentBySidAndSex(1, "男");
    19. Assert.assertEquals(new Student().setName("小明").setSex("男").setSid(1), student);
    20. System.out.println("测试用例1通过!");
    21. }
    22. }
    23. @Test
    24. public void method2(){
    25. try (SqlSession sqlSession = sqlSessionFactory.openSession(true)){
    26. TestMapper mapper = sqlSession.getMapper(TestMapper.class);
    27. Student student = mapper.getStudentBySidAndSex(2, "女");
    28. Assert.assertEquals(new Student().setName("小红").setSex("女").setSid(2), student);
    29. System.out.println("测试用例2通过!");
    30. }
    31. }
    32. }

    通过使用`@After`注解即可添加结束动作

    1. @After
    2. public void after(){
    3. System.out.println("测试结束,收尾工作正在进行...");
    4. }

     

     

  • 相关阅读:
    最大路径和——给定一个二叉树的头节点head,路径规定不同问题下的解法
    QML元素定位器:Row、Colum、Grid、Flow、定位器嵌套以及Repeater用法
    SpringBoot整合RabbitMQ,实现单机抢票系统
    JVM 第四部分—垃圾回收概念 和 算法 1
    一文教你用AnimeGANv2将你女朋友的照片变成动漫人物照
    Django如何配置Redis,以及如何使用
    NetCore配置详解(2)
    输入spark-shell后毫无反应直接跳出命令行
    asynq队列如何配置队列优先级
    【21天学习挑战赛学习打卡】顺序查找
  • 原文地址:https://blog.csdn.net/weixin_51992178/article/details/126382928