JUnit单元测试

文章目录

最近有个软件测试的作业,顺便写一下博客记录一下

1:JUnit下载安装

在github上下载相对应的jar包

JUnit下载

JUnit单元测试
在idea中将jar包导入
JUnit单元测试
JUnit单元测试
安装JUnit插件后重启
JUnit单元测试
在类名上按住alt+insert,点击Junit Test
JUnit单元测试

; 2:JUnit有关注解

注解作用@Test这个注解说明依附在 JUnit 的 public void 方法可以作为一个测试案例。@Before有些测试在运行前需要创造几个相似的对象。在 public void 方法加该注解是因为该方法需要在 test 方法前运行。@BeforeClass在 public void 方法加该注解是因为该方法需要在类中所有方法前运行。@AfterClass它将会使方法在所有测试结束后执行。这个可以用来进行清理活动。@Ignore这个注解是用来忽略有关不需要执行的测试的。

3:JUnit的使用

1:测试实际值是否符合期望值

JUnit单元测试
除了Assert.assertEquals()方法外,Assert还有许多其他方法常用于单元测试

方法名功能assertNull(java.lang.Object object)检查对象是否为空assertNotNull(java.lang.Object object)检查对象是否不为空assertEquals(long expected, long actual)检查long类型的值是否相等assertEquals(double expected, double actual, double delta)检查指定精度的double值是否相等assertFalse(boolean condition)检查条件是否为假assertTrue(boolean condition)检查条件是否为真assertSame(java.lang.Object expected检查两个对象引用是否引用同一对象(即对象是否相等)assertNotSame(java.lang.Object unexpected, java.lang.Object actual)检查两个对象引用是否不引用统一对象(即对象不等)

; 2:JUnit的before与after注解

@Before
在某一个方法中,加入了@Before注解之后,那么这个方法中的功能会在测试方法执行前先执行,一般会在@Before修饰的方法中加入一些申请资源的代码,比如:申请数据库,申请IO资源
@After
在某一个方法中,加入了@After注解之后,那么这个方法中的功能会在测试方法执行执行后执行,所以一般在@After修饰的方法中埃及如:释放资源的代码,,比如释放数据库资源,释放IO资源,释放网络资源。
代码示例:

JUnit单元测试
运行结果
JUnit单元测试

3:@beforeClass与@afterClass的使用

1:被声明为@beforeClass与@AfterClass的方法必须为public static void方法
2:即使beforeClass异常,afterClass仍然执行
3:@brforeClass和@AfterClass在整个程序运行中只执行一次,而@before与@after依赖于执行方法的次数

    package test.JunitPac;

    import JunitPac.CalSum;
    import org.junit.*;

    public class CalSumTest {

        @BeforeClass
        public static void BeforeClass1() throws Exception {
            System.out.println("在test进行之前");

        }

        @Test
        public void testAdd1() throws Exception {
            int res = CalSum.add(4, 5);
            Assert.assertEquals(res, 9);
            System.out.println("执行函数2");

        }

        @Test
        public void testAdd2() throws Exception {
            int res = CalSum.add(5, 9);
            Assert.assertEquals(res, 14);
            System.out.println("执行函数2");

        }

        @AfterClass
        public static void AfterClass() throws Exception {
        }
    }

运行截图:

JUnit单元测试

4:异常测试

使用try catch环绕

    public class CalSum {

        public static void count(int num) throws IllegalAccessException {

            if (num < 0) {
                throw new IllegalAccessException("valid num");

            }
        }
    }

    public class CalSumTest {

        @Test
        public void testException() throws Exception {
            try {
                CalSum.count(-1);
            } catch (IllegalAccessException e) {

            }

        }

    }

运行截图

JUnit单元测试
在Test中加入expected
    public class CalSum {

        public static void count(int num) throws IllegalAccessException {

            if (num < 0) {
                throw new IllegalAccessException("valid num");

            }
        }
    }

    public class CalSumTest {

        @Test(expected =  IllegalAccessException.class)
        public void testException() throws Exception {

            CalSum.count(-1);

        }

    }

运行截图

JUnit单元测试

5:超时测试

Junit 提供了一个暂停的方便选项。如果一个测试用例比起指定的毫秒数花费了更多的时间,那么 Junit 将自动将它标记为失败。timeout 参数和 @Test 注释一起使用。

    public class CalSum {

        public static void TimeOut(){

            while(true) {

            }

        }
    }

    public class CalSumTest {

        @Test(timeout = 1000)
        public void testException() throws Exception {

            CalSum.TimeOut();

        }

    }

运行截图:

JUnit单元测试

Original: https://blog.csdn.net/lllwky/article/details/127816419
Author: sheepbotany
Title: JUnit单元测试

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/654976/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球