• JUnit


    前言

    单元测试的规划时间应该在接口设计完成后、编码开始前

    注解

    以下常用注解修饰的方法被按照顺序执行
    @BeforeClass
    @Before
    @Test
    @After
    @AfterClass
    其中@BeforeClass和@AfterClass只会执行一次,并且必须是static void的;而@Before和@After会在每个@Test前后被执行,且必须是public void的
    @Test注解可以指定必须抛出的异常(expected属性)、指定超时时间(timeout属性)

    断言assert

    assertTrue()
    assertFalse()
    assertEquals():调用equals方法
    assertSame():判断地址是否相同
    assertNull

    参数化测试

    测试类使用@RunWith(Parameterized.class)修饰
    生成测试数据的方法使用@Paramters修饰,返回类型为Collection<Object[]>
    使用@Parameter修饰需要注入的参数(来源是上述集合),可以指定下标

    @RunWith(Parameterized.class)
    public class CalculatorTest {
    
        @Parameters
        public static Collection<Object[]> data() {
            return Arrays.asList(new Object[][]{
                {1, 2, 3}, {4, 5, 9}, {9, 10, 19}, {112, 234, 346}
            });
        }
    
        @Parameter(0)
        public double a;
        @Parameter(1)
        public double b;
        @Parameter(2)
        public double expected;
    
        @BeforeClass
        public static void beforeClass() {
            System.out.println("Before Class");
        }
    
        @Before
        public void setUp() throws Exception {
            System.out.println("Before");
        }
    
    
        @Test
        public void testAdd() {
            assertEquals(expected, new Calculator().add(a, b), 0.001);
        }
    
        @Test
        public void testDivide() {
            assertEquals(2, new Calculator().divide(4, 2), 0.001);
        }
    
        @After
        public void tearDown() throws Exception {
            System.out.println("After");
        }
    
        @AfterClass
        public static void afterClass() {
            System.out.println("After Class");
        }
    }
    

    单个测试数据

    返回Iterable或者Object数组

    @Parameters
    public static Iterable<? extends Object> data() {
        return Arrays.asList("first test", "second test");
    }
    

    or

    @Parameters
    public static Object[] data() {
        return new Object[] { "first test", "second test" };
    }
    

    区分每组测试数据

    在@Parameters注解中为魅族测试用例指定名称,占位符如下:
    {index} 测试用例编号
    {0}, {1}, {2}.... 参数编号

    @Parameters(name = "No.{index}:{0}+{1}?={2}")
    

    多线程测试

    测试类之间存在继承关系

    被重写的方法不会被执行,否则先执行父类的再执行子类的

  • 相关阅读:
    windows nginx
    stdClass 标准
    array_merge
    array_pop
    array_push
    array_unique
    GMT与UTC简介(转)
    curl-手册
    13.5. zipfile — Work with ZIP archives
    7. Input and Output
  • 原文地址:https://www.cnblogs.com/darknessplus/p/11405126.html
Copyright © 2020-2023  润新知