单元测试JUnit初学

发表于:2009-5-26 13:43

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:51Testing博客

  第四步:在测试方法中调用接口中要测试的方法。

  可以在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方法中编写代码清理各种资源。
22/2<12
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号