Junit单元测试

mac2022-06-30  22

1.单元测试基本使用

在main方法中写代码测试存在的问题

所有代码都写在main方法中,都会运行,我们如果要测试,会执行所有代码,测试效率会变低

什么是单元测试:

对部分代码的进行测试

什么是Junit:

Junit是用于Java的单元测试的框架, 是别人写好的

Junit的好处:

对部分代码的进行测试,提高测试的效率

Junit的使用步骤:

1.编写测试方法 2.在测试方法头上添加@Test 3.运行测试方法

测试方法的要求?

1.修饰符必须是public 2.返回值必须是void 3.参数列表必须为空

Junit常用注解(Junit4.xxxx版本)

@Before:用来修饰方法,该方法会在每一个测试方法执行之前执行一次。@After:用来修饰方法,该方法会在每一个测试方法执行之后执行一次。@BeforeClass:用来静态修饰方法,该方法会在所有测试方法之前执行一次。@AfterClass:用来静态修饰方法,该方法会在所有测试方法之后执行一次。

Junit常用注解(Junit5.xxxx版本)

@BeforeEach:用来修饰方法,该方法会在每一个测试方法执行之前执行一次。@AfterEach:用来修饰方法,该方法会在每一个测试方法执行之后执行一次。@BeforeAll:用来静态修饰方法,该方法会在所有测试方法之前执行一次。@AfterAll:用来静态修饰方法,该方法会在所有测试方法之后执行一次。 public class Test01 { // 1.绿色: 测试通过 2.红色: 测试不通过 3.黄色: 断言失败 @Test public void test01() { System.out.println("我是测试方法"); Calcuate c = new Calcuate(); int add = c.add(1, 2); // 断言: 如果期望值和实际值相等,通过, 如果期望值和实际值不相等不通过 // Assert.assertEquals("期望值", "实际值"); Assert.assertEquals(3, add); System.out.println("add = " + add); } }

如何运行测试方法

选中方法名 --> 右键 --> Run ‘测试方法名’ 运行选中的测试方法选中测试类类名 --> 右键 --> Run ‘测试类类名’ 运行测试类中所有测试方法选中模块名 --> 右键 --> Run ‘All Tests’ 运行模块中的所有测试类的所有测试方法 /** 业务类:实现加减乘除运算 */ public class Cacluate { /* 业务方法1:求a和b之和 */ public int sum(int a,int b){ return a + b + 10; } /* 业务方法2:求a和b之差 */ public int sub(int a,int b){ return a - b; } } public class TestCacluate { static Cacluate c = null; @BeforeClass // 用来静态修饰方法,该方法会在所有测试方法之前执行一次。 public static void init(){ System.out.println("初始化操作"); // 创建Cacluate对象 c = new Cacluate(); } @AfterClass // 用来静态修饰方法,该方法会在所有测试方法之后执行一次。 public static void close(){ System.out.println("释放资源"); c = null; } /* @Before // 用来修饰方法,该方法会在每一个测试方法执行之前执行一次。 public void init(){ System.out.println("初始化操作"); // 创建Cacluate对象 c = new Cacluate(); } @After // 用来修饰方法,该方法会在每一个测试方法执行之后执行一次。 public void close(){ System.out.println("释放资源"); c = null; }*/ @Test public void testSum(){ int result = c.sum(1,1); /* 断言:预习判断某个条件一定成立,如果条件不成立,则直接奔溃。 assertEquals方法的参数 (String message, double expected, double actual) message: 消息字符串 expected: 期望值 actual: 实际值 */ // 如果期望值和实际值一致,则什么也不发生,否则会直接奔溃。 Assert.assertEquals("期望值和实际值不一致",12,result); System.out.println(result); } @Test public void testSub(){ // 创建Cacluate对象 // Cacluate c = new Cacluate(); int result = c.sub(1,1); // 如果期望值和实际值一致,则什么也不发生,否则会直接奔溃。 Assert.assertEquals("期望值和实际值不一致",0,result); System.out.println(result); } }
最新回复(0)