• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

利用 Eclipse 进行单元测试

发布: 2008-6-25 16:34 | 作者: 不详 | 来源: 测试时代编辑整理 | 查看: 152次 | 进入软件测试论坛讨论

领测软件测试网

场景 1:使用 jMock 模拟接口

测试 ServiceClass 类中的服务方法十分简单。假定测试要求为证明 runService() 方法并未运行 —— 换言之,返回的布尔结果是 false。在这种情况下,传递给 runService() 方法的 ICollaborator 对象被模拟 为期望调用 executeJob() 方法,并返回除了 “success” 以外的字符串。通过这种方法,确保把布尔字符串 false 返回给测试。

下面所示的是包含测试逻辑的 ServiceClassTest 类代码。


清单 3. 场景 1 的 ServiceClassTest 类样例代码
               
import org.jmock.Mock;
import org.jmock.cglib.MockObjectTestCase;
public class ServiceClassTest extends MockObjectTestCase {
 private ServiceClass serviceClass;
 private Mock mockCollaborator;
 private ICollaborator collaborator;
 
 public void setUp(){
  serviceClass = new ServiceClass();
  mockCollaborator = new Mock(ICollaborator.class);
 }
 
 public void testRunServiceAndReturnFalse(){
  mockCollaborator.expects(once()).method\
              ("executeJob").will(returnValue("failure"));
  collaborator = (ICollaborator)mockCollaborator.proxy();
  boolean result = serviceClass.runService(collaborator);
  assertFalse(result);
 }
}
 

 编写测试的时机

用测试模拟框架运行您自己的测试的最佳方法是利用 test-first 灵活方法。首先创建测试并设定期望。仅在测试失败后才编写实现以修正测试。当测试运行正常时,您将编写另一个测试以检查稍后添加到待测试的类中的功能。
 
 
如果将在各种测试用例中执行公共操作,则在测试中包括 setUp() 方法是一种很好的想法。包括 tearDown() 方法也很不错,但不作严格要求,除非要运行集成测试

另请注意,使用 jMock 和 RMock,框架将在测试运行结束时或测试运行期间在所有模拟对象中检查所有期望。并不实际需要为每个模拟期望包括 verify() 方法。当作为 JUnit 测试运行时,测试将通过,如下所示:


图 3. 场景 1 测试通过

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网