快速业务通道

AspectJ和模仿对象的测试灵活性 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-16
tomersOver(int ageInYears) throws RemoteException;     /**     * Registers a new customer with the system. If the customer already     * exists within the system, this method throws a NameExistsException.     */     public void register(String name)      throws RemoteException, NameExistsException; }

AspectJ和模仿对象的测试灵活性(2)

时间:2011-06-25 IBM Nicholas Lesiecki

客户机代码名为 ClientBean ,它本质上将公开相同的方法,将实现这些方法的任务交给 CustomerManager ,如清单 2 所示。

清单 2. EJB 客户机代码

public class ClientBean {      private Context initialContext;      private CustomerManager manager;      /**      * Includes standard code for referencing an EJB.      */      public ClientBean() throws Exception{        initialContext = new InitialContext();        Object obj =            initialContext.lookup("java:comp/env/ejb/CustomerManager");        CustomerManagerHome managerHome = (CustomerManagerHome)obj;        /*Resin uses Burlap instead of RMI-IIOP as its default        * network protocol so the usual RMI cast is omitted.        * Mock Objects survive the cast just fine.        */        manager = managerHome.create();      }      public String[] getCustomers(int ageInYears) throws Exception{        return manager.getCustomersOver(ageInYears);      }      public boolean register(String name) {        try{          manager.register(name);          return true;        }        catch(Exception e){          return false;        }      } }

我有意将这个单元写得简单一点,这样我们就可以将精力集中在测试上。 ClientBean 的接口与 CustomerManager 的接口只有一点点不同。与 ClientManager 不同, ClientBean 的 register() 方法将返回一个布尔值,而且在客户已经存在的时侯不会抛出异常。这些就是好的单元测试应该验证的功能。

清单 3 所示的代码将实现 ClientBean 的 JUnit 测试。其中有三个测试方法,一个是 getCustomers() 的,另外两个是 register() 的(其中一个是成功的,另一个是失败的)。测试假定 getCustomers() 将返回一个有 55 个条目的列表, register() 将为 EXISTING_CUSTOMER 返回 false ,为 NEW _CUSTOMER 返回 true 。

AspectJ和模仿对象的测试灵活性(3)

时间:2011-06-25 IBM Nicholas Lesiecki

清单 3. ClientBean 的单元测试

//[...standard JUnit methods omitted...] public static final String NEW_CUSTOMER = "Bob Smith"; public static final String EXISTING_CUSTOMER = "Philomela Deville"; public static final int MAGIC_AGE = 35; public void testGetCustomers() throws Exception {      ClientBean client = new ClientBean();      String[] results = client.getCustomers(MAGIC_AGE);      assertEquals("Wrong number of client names returned.",             55, results.length); } public void testRegi

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号