【JUnit测试】总结

Junit是xUnit的一个子集,在c++,paython,java语言中测试框架的名字都不相同
xUnit是一套基于测试驱动开发的测试框架
其中的断言机制:将程序预期的结果与程序运行的最终结果进行比对,确保对结果的可预知性
java所用的测试工具是Junit

使用 JUnit 需要导入 JUnit 包。官方网站:https://junit.org/junit5/
在不同编译器下的导包过程不一样,这里以 Maven 为例

<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency> 测试流程 创建测试文件

新建一个源代码目录来存放我们的测试代码

测试类的包应该和被测试类保持一致

测试方法上必须使用 @Test 进行修饰

测试方法必须使用 public void 进行修饰,不能带任何的参数

测试单元中的每个方法必须可以独立测试,测试方法间不能有任何的依赖

测试类使用 Test 作为类名的后缀(不是必须)

测试方法使用 test 作为方法名的前缀(不是必须)

目标代码:

package com.imooc.util; public class Calculate { 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) { return a * b; } public int divide(int a ,int b) { return a / b; } } 创建测试代码

右键选中需要测试的目标代码,创建 JUnit Test Case 测试用例。

【JUnit测试】总结


【JUnit测试】总结


【JUnit测试】总结


【JUnit测试】总结

测试代码:

package com.imooc.util; import static org.junit.Assert.*; import org.junit.Test; public class CalculateTest { /* * 1.测试方法上必须使用@Test进行修饰 * 2.测试方法必须使用public void 进行修饰,不能带任何的参数 * 3.新建一个源代码目录来存放我们的测试代码 * 4.测试类的包应该和被测试类保持一致 * 5.测试单元中的每个方法必须可以独立测试,测试方法间不能有任何的依赖 * 6.测试类使用Test作为类名的后缀(不是必须) * 7.测试方法使用test作为方法名的前缀(不是必须) */ @Test public void testAdd() { assertEquals(6, new Calculate().add(3,3)); } @Test public void testSubtract() { assertEquals(3, new Calculate().subtract(5,2)); } @Test public void testMultiply() { assertEquals(4, new Calculate().multiply(2, 2)); } @Test public void testDivide() { assertEquals(3, new Calculate().divide(6, 2)); } }

【JUnit测试】总结


注意:

Failure 一般由单元测试使用的断言方法判断失败所引起的,这表示在测试点发现了问题,即 程序输出的结果和我们预期的不一样。

error 是由代码异常引起的,它可以产生于测试代码本身的错误,也可以是被测试代码中的一个隐藏 bug。

测试用例不说用来证明你是对的,而是用来证明你没有错

注释

演示代码:

package com.imooc.util; import static org.junit.Assert.*; import org.junit.After; import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; public class JunitFlowTest { /* * 1.@BeforeClass修饰的方法会在所有方法被调用前被执行, * 而且该方法是静态的,所以当测试类被加载后接着就会运行它, * 而且在内存中它只会存在一份实例,它比较适合加载配置文件。 * 2.@AfterClass所修饰的方法通常用来对资源的清理,如关闭数据库的连接 * 3.@Before和@After会在每个测试方法的前后各执行一次。 * */ @BeforeClass public static void setUpBeforeClass() throws Exception { System.out.println("this is beforeClass..."); } @AfterClass public static void tearDownAfterClass() throws Exception { System.out.println("this is afterClass..."); } @Before public void setUp() throws Exception { System.out.println("this is before..."); } @After public void tearDown() throws Exception { System.out.println("this is after"); } @Test public void test1() { System.out.println("this is test1..."); } @Test public void test2(){ System.out.println("this is test2..."); } }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wppjff.html