zoukankan      html  css  js  c++  java
  • JUnit

    1. 核心断言
      assertArrayEquals(expecteds, actuals) 查看两个数组是否相等。
      assertEquals(expected, actual) 查看两个对象是否相等。类似于字符串比较使用的equals()方法
      assertNotEquals(first, second) 查看两个对象是否不相等。
      assertNull(object) 查看对象是否为空。
      assertNotNull(object) 查看对象是否不为空。
      assertSame(expected, actual) 查看两个对象的引用是否相等。类似于使用“==”比较两个对象
      assertNotSame(unexpected, actual) 查看两个对象的引用是否不相等。类似于使用“!=”比较两个对象
      assertTrue(condition) 查看运行结果是否为true。
      assertFalse(condition) 查看运行结果是否为false。
      assertThat(actual, matcher) 查看实际值是否满足指定的条件
      fail() 让测试失败

    2. 核心注解:
      @Before 初始化方法,没个测试方法执行前都会执行
      @After 释放资源,每个测试方法执行后都会执行
      @Test 测试方法,在这里可以测试期望异常和超时时间
      @Ignore 忽略的测试方法
      @BeforeClass 针对所有测试,只执行一次,且必须为static void
      @AfterClass 针对所有测试,只执行一次,且必须为static void
      @RunWith 指定测试类使用某个运行器
      @Parameters 指定测试类的测试数据集合
      @Rule 允许灵活添加或重新定义测试类中的每个测试方法的行为
      @FixMethodOrder 指定测试方法的执行顺序

    3. 执行顺序:
      一个测试类单元测试的执行顺序为:
      @BeforeClass –> @Before –> @Test –> @After –> @AfterClass

      每一个测试方法的调用顺序为:
      @Before –> @Test –> @After
    4. 参数化测试就好比把一个输入值,期望值的集合传入测试方法,达到一次性测试的目的,步骤如下:
      • 为参数化测试类指定特殊的运行器org.junit.runners.Parameterized,指定运行器使用@RunWith,使用Parameterized运行器的语法为:
        @RunWith(Parameterized.class),即在Parameterized中运行测试
      • 为测试类声明多个变量,分别用于存放期望值和测试所用数据
      • 为测试类声明一个带有参数的公共构造函数,并在其中为第二个环节中声明的几个变量赋值
      • 为测试类声明一个使用org.junit.runners.Parameterized.Parameters修饰的,返回值为java.util.Collection的公共静态方法,并在此方法中初始化所有需要测试的参数对
      • 编写测试方法使用定义的变量作为参数进行测试
    5. 打包测试,就是一次性运行完包中所包含的所有测试类的执行,示例代码如下:
      @RunWith(Suite.class)  
      @Suite.SuiteClasses({ AssertTests.class, FibonacciTest.class, JDemoTest.class })  
      public class AllCaseTest {    
      }
      AllCaseTest即是打包测试类,它的内容是空,运行该类就会运行AssertTests,FabonaccitTest,JDemoTest的测试代码
    6. 异常测试:最常用写法如下,注意先写期望的异常,然后才进行函数调用
      @Rule  
      public ExpectedException thrown = ExpectedException.none();  
       
      @Test  
      public void shouldTestExceptionMessage() throws IndexOutOfBoundsException {  
          List<Object> list = new ArrayList<Object>();    
          thrown.expect(IndexOutOfBoundsException.class);  
          thrown.expectMessage("Index: 0, Size: 0");  
          list.get(0);  
          Assert.assertEquals(1, list.get(0));  
      }
  • 相关阅读:
    Kubernetes 集成研发笔记
    Rust 1.44.0 发布
    Rust 1.43.0 发布
    PAT 甲级 1108 Finding Average (20分)
    PAT 甲级 1107 Social Clusters (30分)(并查集)
    PAT 甲级 1106 Lowest Price in Supply Chain (25分) (bfs)
    PAT 甲级 1105 Spiral Matrix (25分)(螺旋矩阵,简单模拟)
    PAT 甲级 1104 Sum of Number Segments (20分)(有坑,int *int 可能会溢出)
    java 多线程 26 : 线程池
    OpenCV_Python —— (4)形态学操作
  • 原文地址:https://www.cnblogs.com/phenixyu/p/3980199.html
Copyright © 2011-2022 走看看