Junit测试工具使用教程+实践

本文介绍了如何在IntelliJ IDEA中安装配置Junit插件,详细讲解了JUnit的注解和断言,并通过四则运算类的测试案例,演示了JUnit的执行过程和测试方法的生成方式。
部署运行你感兴趣的模型镜像

一. 安装配置插件(IntelliJ IDEA)

  1. 在项目中选择file -->Settings–>Plugins–>Marketplace,搜索Junit,选择下载量最大的点击Install安装就可以了,安装插件以后需要重启IDEA
    在这里插入图片描述
  2. 修改JUnitGenerator V2.0的配置。
    Default Template选择JUnit 4(可不执行下面其他操作)
    如果需要自动生成测试代码和java类在同一包下,不匹配maven项目标准测试目录:
    修改Output Path为:${SOURCEPATH}/../../test/java/${PACKAGE}/${FILENAME}
    在这里插入图片描述
    并修改测试用例模板。模板中生成的package的包名需去掉test。
    在这里插入图片描述

二. JUnit注解+断言

注解描述
@Test测试注解,标记一个方法可以作为一个测试用例 。
@Before表示该方法必须在类中的每个测试之前执行,以便执行某些必要的先决条件。
@BeforeClass指出这是附着在静态方法必须执行一次并在类的所有测试之前
这种情况一般用于测试计算、共享配制方法(如数据库连接)。注意:方法必须为静态方法。
@After表示该方法在每项测试后执行
(如执行每一个测试后重置某些变量,删除临时变量等)。
@AfterClass当需要执行所有测试在JUnit测试用例类后执行,AlterClass注解可以使用以清理一些资源
(如数据库连接),注意:方法必须为静态方法。
@Ignore当想暂时禁用特定的测试执行可以使用这个注解,每个被注解为@Ignore的方法将不再执行
@Runwith放在测试类名之前,用来确定这个类怎么运行的。也可以不标注,会使用默认运行器。
@Parameters用于使用参数化功能。
@SuiteClasses用于套件测试
断言描述
void assertEquals([String message],expected value,actual value)断言两个值相等。值类型可能是int,short,long,byte,char,Object,第一个参数是一个可选字符串消息
void assertTrue([String message],boolean condition)断言一个条件为真
void assertFalse([String message],boolean condition)断言一个条件为假
void assertNotNull([String message],java.lang.Object object)断言一个对象不为空(null)
void assertNull([String message],java.lang.Object object)断言一个对象为空(null)
void assertSame([String message],java.lang.Object expected,java.lang.Object actual)断言两个对象引用相同的对象
void assertNotSame([String message],java.lang.Object unexpected,java.lang.Object actual)断言两个对象不是引用同一个对象
void assertArrayEquals([String message],expectedArray,resultArray)断言预期数组和结果数组相等,
数组类型可能是int,short,long,byte,char,Object

三. Junit执行过程(注解以及断言的使用)

  1. 创建一个四则运算的被测试类
public class Calculator {

    public int add(int a, int b)
    {
        return a + b;
    }

    public int subtract(int a, int b)
    {
        return a - b;
    }

    public int multiply(int a, int b)
    {
        try{
            Thread.sleep(500);
        }catch (InterruptedException e) {
            e.printStackTrace();
        }
        return a * b;
    }

    public int divide(int a, int b) throws Exception
    {
        if (0 == b)
        {
            throw new Exception("除数不能为0");
        }
        return a / b;
    }
}

  1. 生成测试类:
    在待编写测试的java类源码块上按快捷键Alt + Insert。选择JUnit Test->JUnit 4;
    在待编写测试的java类源码块上按快捷键Ctrl + Shift + T;
    光标定位到待编写测试的java类源码块,选择code->Generate,后面的步骤和方法1一样。

    在测试类中编写测试方法

    public class CalculatorTest {
         private static Calculator calculator = new Calculator();
    
        @BeforeClass
        public static void setUpBeforeClass() throws Exception{
            System.out.println("@BeforeClass");
        }
        @AfterClass
        public static void tearDownAfterClass() throws Exception{
            System.out.println("@AfterClass");
        }
    
        @Before
        public void setUp() throws Exception {
            System.out.println("测试开始");
        }
    
        @After
        public void tearDown() throws Exception {
            System.out.println("测试结束");
        }
    
        @Test
        public void testAdd() {
            int add = calculator.add(1, 2);
            Assert.assertEquals(3,add);
        }
    
        @Test
        public void testSubtract() {
            int subtract = calculator.subtract(5, 2);
            Assert.assertEquals(3, subtract);
        }
    
        @Test(timeout = 300)
        public void testMultiply() {
            int multiply = calculator.multiply(3, 4);
            System.out.println(multiply);
        }
    
        @Test(expected = ArithmeticException.class)
        public void testDivide() {
            calculator.divide(4, 2);
        }
    }
    

参考文章:JUnit4教程+实践
JUnit4:Test注解的两个属性:expected和timeout

您可能感兴趣的与本文相关的镜像

GPT-SoVITS

GPT-SoVITS

AI应用

GPT-SoVITS 是一个开源的文本到语音(TTS)和语音转换模型,它结合了 GPT 的生成能力和 SoVITS 的语音转换技术。该项目以其强大的声音克隆能力而闻名,仅需少量语音样本(如5秒)即可实现高质量的即时语音合成,也可通过更长的音频(如1分钟)进行微调以获得更逼真的效果

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值