JUnit

JUnit 4 核心API(JUnit 中的最重要的程序包是 junit.framework 它包含了所有的核心类)

类的名称类的功能继承关系
Assertassert 方法的集合public class Assert extends java.lang.Object
TestCase一个定义了运行多重测试的固定装置public abstract class TestCase extends Assert implements Test
TestResultTestResult 集合了执行测试样例的所有结果public class TestResult extends Object
TestSuiteTestSuite 是测试的集合public class TestSuite extends Object implements Test

Assert类:

//检查两个变量或者等式是否相等
void assertEquals(boolean expected, boolean actual);

//检查条件是假的
void assertFalse(boolean condition);

//检查对象是否不为空
void assertNotNull(Object object);

//检查对象是否为空
void assertNull(Object object);

//检查条件为真
void assertTrue(boolean condition);

//在没有报告的情况下使测试不通过
void fail();

TestCase类:

//为被run(TestResult result) 执行的测试案例计数
int countTestCases();

//创建一个默认的 TestResult 对象
TestResult createResult();

//获取 TestCase 的名称
String getName();

//一个运行这个测试的方便的方法,收集由TestResult 对象产生的结果
TestResult run();

//在 TestResult 中运行测试案例并收集结果
void run(TestResult result);

//设置 TestCase 的名称
void setName(String name);

//创建固定装置,例如,打开一个网络连接
void setUp();

//拆除固定装置,例如,关闭一个网络连接
void tearDown();

//返回测试案例的一个字符串表示
String toString();

TestResult类:

//在错误列表中加入一个错误
void addError(Test test, Throwable t);

//在失败列表中加入一个失败
void addFailure(Test test, AssertionFailedError t);

//显示测试被编译的这个结果
void endTest(Test test);

//获取被检测出错误的数量
int errorCount();

//返回错误的详细信息
Enumeration errors();

//获取被检测出的失败的数量
int failureCount();

//运行 TestCase
void run(TestCase test);

//获得运行测试的数量
int int runCount();

//声明一个测试即将开始
void startTest(Test test);

//标明测试必须停止
void stop();

TestSuite类:

//在套中加入测试
void addTest(Test test);

//将已经给定的类中的测试加到套中
void addTestSuite(Class<? extends TestCase> testClass);

//对这个测试即将运行的测试案例进行计数
int countTestCases();

//返回套的名称
String getName();

//在 TestResult 中运行测试并收集结果
void run(TestResult result);

//设置套的名称
void setName(String name);

//在给定的目录中返回测试
Test testAt(int index);

//返回套中测试的数量
int testCount();
//返回会失败的测试并且记录警告信息
static Test warning(String message);

1、JUnit 4 核心对象

JUnit概念责任
Assert断言,定义测试的条件:当条件成立时assert方法保存沉默,条件不成立时抛异常
测试以@Test注解定义的一个测试方法,为运行该方法JUnit会创建一个包含类的新实例,然后再调用这个被@Test注解的方法
测试类一个测试类是@Test方法的容器
SuiteSuite允许将测试类归为一个测试套件,加@RunWith注解执行测试套件
Runner测试运行器,Runner类用于运行测试
assert方法描述
void assertEquals(boolean expected, boolean actual)检查两个变量或者等式是否平衡
void assertTrue(boolean expected, boolean actual)检查条件为真
void assertFalse(boolean condition)检查条件为假
void assertNotNull(Object object)检查对象不为空
void assertNull(Object object)检查对象为空
void assertSame(boolean condition)assertSame() 方法检查两个相关对象是否指向同一个对象
void assertNotSame(boolean condition)assertNotSame() 方法检查两个相关对象是否不指向同一个对象
void assertArrayEquals(expectedArray, resultArray)assertArrayEquals() 方法检查两个数组是否相等

2、JUnit 4 的测试运行器

运行器目的
org.junit.internal.runners.JUnit38ClassRunner该运行器包含在当前JUnit版本中用于向后兼容,它将测试用例作为JUnit 3.8 的测试用例来启动
org.junit.runners.JUnit4该运行器将测试用例作为JUnit 4 的测试用例来启动
org.junit.runners.Parameterized该运行器可以使用不同参数来运行相同的测试集
org.junit.runners.SuiteSuite是一个包含不同测试的容器,同时 Suite 也是一个运行器,可以运行一个测试类中所有以@Test注释的方法

3、JUnit 4 和TestNG 注解

特性Junit4TestNG
测试注解@Test@Test
测试套件执行之前执行-@BeforeSuite
测试套件执行之后执行-@AfterSuite
测试之前执行-@BeforeTest
测试之后执行-@BeforeTest
在一个测试方法所属的任意一个组的第一个方法被调用之前执行-@BeforeGroups
在一个测试方法所属的任意一个组的第一个方法被调用之后执行-@AfterGroups
在当前类的任意一个测试方法调用之前执行@BeforeClass,被注释的方法必须是公有且静态的方法@BeforeClass
在当前类的任意一个测试方法调用之后执行@AfterClass,被注释的方法必须是公有且静态的方法@AfterClass
每个测试方法之前执行@Before,被注释的方法必须是公有的方法@BeforeMethod
每个测试方法之后执行@After,被注释的方法必须是公有的方法@AfterMethod
忽略测试@Ignore@Test(enable = false)
预期异常(异常测试)@Test(expected = ArithmeticArithmeticException.class)@Test(expectedException = ArithmeticArithmeticException.class)
超时测试@Test(timetimeout = 1000)@Test(timetimeout = 1000)

JUnit 4 和 TestNG 之间注解方面的区别主要有以下几点:
a.在Junit 4 中,如果需要在方法前面使用@BeforeClass和@AfterClass,那么该测试方法则必须是静态方法。TestNG 在方法定义部分则更加的灵活,它不需要类似的约束。
b. 在Junit 4中,注解的命名是比较令人困惑的,例如 Before, After and Expected,我们不是很确切的能理解在方法前面有Before和After这样的注解是做什么的,同样Expected也如此。TestNG在这方面做的就好很多,注解使用了BeforeMethod,AfterMethod和ExpectedException,这样的名字就非常好理解了。

来源声明:JUnit 4 与 TestNG对比: https://www.jianshu.com/p/afb04d5a1f1b
入门教程:https://wiki.jikexueyuan.com/project/junit/
junit 5 官网:https://junit.org/junit5/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值