第四步:在测试方法中调用接口中要测试的方法。
可以在BaseCase中已经引用了目标接口的实现类。在测试方法中可直接调用。也可以在测试类中直接引用目标接口的实现类。
例如引用计算器类中实现加法功能的add()方法。参数为两个加数。
@Test public void testZero(){ double result = calculatorService.add(0,0); } |
第五步:使用Assert所提供的静态方法验证方法调用返回的结果。
Assert超类所提供的核心方法如下:
assertEquals
§断言两个对象相等,若不满足,方法抛出带有相应信息的AssertionFailedError异常。
§例如计算器加法功能的测试可以使用一下验证:
Assert.assertEquals(0,result);
assertSame
§断言两个引用指向同一个对象,若不满足,方法抛出带有相应信息的AssertionFailedError异常。
assertNotSame
§断言两个引用指向不同对象,若不满足,方法抛出带有相应信息的AssertionFailedError异常。
assertTrue
§断言条件为真,若不满足,方法抛出带有相应信息的AssertionFailedError异常。
assertFalse
§断言条件为假,若不满足,方法抛出带有相应信息的AssertionFailedError异常。
assertNull
§断言对象为null,若不满足,方法抛出带有相应信息的AssertionFailedError异常。
assertNotNull
§断言对象不为null,若不满足,方法抛出带有相应信息的AssertionFailedError异常。
Fail
§让测试失败,并给出指定信息。
测试异常需要指定期待的异常类(expected=?)。
@Test expected=NullPointerException.class
测试超时需要指定超时时间(timeOut=?)。
第六步:执行测试查看测试结果。
在eclipse测试类中点右键-run as-junit Test执行测试。
测试结果分为一下三种。
- Pass:测试通过。
- Failure:测试失败。
- Error:由异常引起的测试错误
用TestSuite来组合测试。
用TestSuite来把所有的测试类组合在一起执行。
如把计算器功能中的加减乘除的测试方法组合起来执行测试:
import org.junit.runner.RunWith; import org.junit.runners.Suite; import org.junit.runners.Suite.SuiteClasses; @RunWith(Suite.class) @SuiteClasses(value = { AddTest.class }) @SuiteClasses(value = { MinusTest.class }) @SuiteClasses(value = { MultiplyTest.class }) @SuiteClasses(value = { divideTest.class }) public class AllTests { } |
- 确保开发人员编写的被测接口方法的javadoc详细完整。
- 必须包含的内容有:场景,输入参数,输入参数的返回结果,预期抛出的异常。
- TC中要准备测试所需要的各种条件。
- 调用要测试的方法。
- 验证被测方法的返回值和所预期的是否一致。
- 完成后,使用@After或@AfterClass方法中编写代码清理各种资源。