JUNIT测试框架的简单使用

Posted 54chensongxia

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JUNIT测试框架的简单使用相关的知识,希望对你有一定的参考价值。

示例Demo

/**
 * 使用JUNIT进行单元测试的一般步骤是:
 *
 * step1:创建一个测试类,下面的列子中是CalculateServiceImplTest
 *
 * step2:向测试类中添加名为 testAdd() 的方法。
 *
 * step3:向方法:上添加 Annotaion @Test。
 *
 * step4:执行测试条件并且应用 Junit 的 assertEquals API 来检查。
 *
 *
 */


public class CalculateServiceImplTest {

    public static final Logger logger = LoggerFactory.getLogger(CalculateServiceImplTest.class);

    private CalculateService calculateService;

    @Before
    public void setUp() throws Exception {
        logger.info("begin to test...");
        calculateService = new CalculateServiceImpl();
    }

    @Test
    public void testAdd(){
        Assert.assertEquals(calculateService.add(2,2),4);
    }

    @After
    public void tearDown() throws Exception {
        logger.info("end to test...");
    }
}

JUnit中的Assert

public class Assert extends java.lang.Object

这个类提供了一系列的编写测试的有用的声明方法。只有失败的声明方法才会被记录。

  • void assertEquals(boolean expected, boolean actual)
    • 检查两个变量或者等式是否平衡
  • void assertFalse(boolean condition)
    • 检查条件是假的
  • void assertNotNull(Object object)
    • 检查对象不是空的
  • void assertNull(Object object)
    • 检查对象是空的
  • void assertTrue(boolean condition)
    • 检查条件为真
  • void fail()
    • 在没有报告的情况下使测试不通过

这些方法我就不一一介绍了,相信我的读者们都能看懂并在平时开发中用的到,还是比较容易理解的。

Assert可以用来判断方法的真是结果和预期结果是否一样。是我们在写单元测试中用到最多的一个api。

JUnit中的注解

  • @BeforeClass:针对所有测试,只执行一次,且必须为static void
  • @Before:初始化方法
  • @Test:测试方法,在这里可以测试期望异常和超时时间
  • @After:释放资源
  • @AfterClass:针对所有测试,只执行一次,且必须为static void
  • @Ignore:忽略的测试方法

一个单元测试类执行顺序为:

@BeforeClass –> @Before –> @Test –> @After –> @AfterClass

每一个测试方法的调用顺序为:

@Before –> @Test –> @After

时间测试

如果一个测试用例比起指定的毫秒数花费了更多的时间,那么 Junit 将自动将它标记为失败。timeout 参数和 @Test注释一起使用。现在让我们看看活动中的 @test(timeout)。

@Test(timeout = 1000)
public void testTimeoutSuccess() {
    // do nothing
}

异常测试

你可以测试代码是否它抛出了想要得到的异常。expected 参数和 @Test 注释一起使用。现在让我们看看活动中的 @Test(expected)。

@Test(expected = NullPointerException.class)
public void testException() {
    throw new NullPointerException();
}

以上是关于JUNIT测试框架的简单使用的主要内容,如果未能解决你的问题,请参考以下文章

如何将JUnit 4测试添加到JUnit 3测试套件中

单元测试及框架简介 --junitjmockmockitopowermock的简单使用

JUnit简单使用教程

JUnit简单使用教程

单元测试基础知识

JUnit测试