写在前面 Junit5已经出来,但因为习惯问题此处还是主要语句Junit4的主要用法。
Junit应用 Junit 断言 JUnit的编写,此处就不再举例说明了,如果不太清楚可以随便查一下。我们从断言开始入手。 所有的断言都包含在 Assert 类中。public class Assert extends java.lang.Object
这个类提供了很多有用的断言方法来编写测试用例。只有失败的断言才会被记录。Assert 类中的一些有用的方法列式如下:
方法
描述
void assertEquals(boolean expected, boolean actual)
检查两个变量或者等式是否平衡
void assertTrue(boolean expected, boolean actual)
检查条件为真
void assertFalse(boolean expected)
检查条件为假
void assertNotNull(Object object)
检查对象不为空
void assertNull(Object object)
检查对象为空
void assertSame(boolean condition)
检查两个相关对象是否指向同一个对象
void assertNotSame(boolean condition)
检查两个相关对象是否指向不同对象
void assertArrayEquals(expectedArray, resultArray)
检查两个数组是否相等
Junit 执行过程 让我们通过一个例子来更好的理解Junit中的的方法的执行过程。首先创建一个java文件,命名为LearnJunit.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 import org.junit.After; import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Ignore; import org.junit.Test; public class LearnJunit { //execute only once, in the starting @BeforeClass public static void beforeClass() { System.out.println("this is before class method"); } //execute only once, in the end @AfterClass public static void afterClass() { System.out.println("this is after class method"); } //execute for each test, before executing test @Before public void before() { System.out.println("this is before"); } //execute for each test, after executing test @After public void after() { System.out.println("this is after"); } //test case 1 @Test public void testCase1() { System.out.println("this is the test case 1"); } //test case 2 @Test public void testCase2() { System.out.println("this is the test case 2"); } }
之后在同一文件目录下创建一个java文件用来运行测试文件,命名为TestRunner.java。
1 2 3 4 5 6 7 8 9 10 11 12 13 import org.junit.runner.JUnitCore; import org.junit.runner.Result; import org.junit.runner.notification.Failure; public class TestRunner { public static void main(String[] args) { Result result = JUnitCore.runClasses(LearnJunit.class); for (Failure failure : result.getFailures()) { System.out.println(failure.toString()); } System.out.println(result.wasSuccessful()); } }
编译运行的结果是:
1 2 3 4 5 6 7 8 9 this is before class method this is before this is the test case 1 this is after this is before this is the test case 2 this is after this is after class method true
最后的true
是result.wasSuccessful()
的结果,Result result = JUnitCore.runClasses(LearnJunit.class);
是执行命令。