您的位置:软件测试 > 开源软件测试 > 开源单元测试工具 >
利用Eclipse进行单元测试
作者:网络转载 发布时间:[ 2013/2/19 15:20:35 ] 推荐标签:

第四个类是测试类:ServiceClassTest(实现的性质已经被尽可能地简化)。清单 1 将显示第四个类的代码。

清单 1. 服务类的样例代码

               
public class ServiceClass {
  public ServiceClass(){
  //no-args constructor 
  }

  public boolean runService(ICollaborator collaborator){
  if("success".equals(collaborator.executeJob())){
    return true;
  }
  else
  {
    return false;
  }
}
}


在 ServiceClass 类中,if...else 代码块是一个简单的逻辑分支,根据测试期望说明选取一条路经 —— 而不是另一条路经 —— 之后测试将失败(或通过)的原因。下面显示了 Collaborator 类的源代码。

清单 2. Collaborator 类的样例代码

               
public class Collaborator implements ICollaborator{
   public Collaborator(){
     //no-args constructor
   }
   public String executeJob(){
     return "success";
   }
}


Collaborator 类也十分简单,它配有无参数的构造函数以及从 executeJob() 方法返回的简单 String。下面的代码显示了 ICollaborator 类的代码。

public interface ICollaborator {
    public abstract String executeJob();
}


接口 ICollaborator 有一个必须在 Collaborator 类中实现的方法。

以上代码绪后,让我们继续检验怎样在各种场景中成功地运行 ServiceClass 类的测试。

回页首

场景 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 灵活方法。首先创建测试并设定期望。仅在测试失败后才编写实现以修正测试。当测试运行正常时,您将编写另一个测试以检查稍后添加到待测试的类中的功能。

上一页1234567下一页
软件测试工具 | 联系我们 | 投诉建议 | 诚聘英才 | 申请使用列表 | 网站地图
沪ICP备07036474 2003-2017 版权所有 上海泽众软件科技有限公司 Shanghai ZeZhong Software Co.,Ltd