论坛首页 综合技术论坛

EasyMock如何重复录制

浏览 3049 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-04-07  
针对service方法,如何使用easymock来mock Factory的getBean方法?

我的想法是重复录制,可是查不到easymock1.2版本的api是如何写的.红色部分不知道如何写,希望大家看看.

public interface Factory {
  public Object getBean(String id);
}

public class FactoryImpl {
public Object getBean(String id) {
  return this.context.getBean(id);
}
}




public class OrderService {
private Factory factory;
public void setFactory(Factory factory) {
  this.factory = factory
}



public void service() {
  Object obj1 = factory.getBean("client");
  Object obj2 = factory.getBean("order");
  .......
}
}


public class EasyMockUsage extends TestCase {

    public void testService(){        

        // 构造mock控制器

        MockControl fcontrol

 = MockControl.createControl(Factory.class);

        // 这是要测试的MockObject

        Factory fmock

 = (Factory) fcontrol.getMock(); 


      
        fcontrol.reset();

      
        fmock.getBean("client");
       control.setReturnValue(new Client());

       //这里不知道如何写,才能重复录制,针对不同的参数得到不同的返回值
       fmock.getBean("order");
       control.setReturnValue(new Order());


        control.replay();      
        
        

        OrderService service = new OrderService(); 
        
        service.service();

        
        ......

    }


   发表时间:2008-04-08  
尝试了一下,按下面的方式来搞定
public class EasyMockUsage extends TestCase {   
  
    public void testService(){           
  
        // 构造mock控制器   
  
        MockControl fcontrol   
  
 = MockControl.createControl(Factory.class);   
  
        // 这是要测试的MockObject   
  
        Factory fmock   
  
 = (Factory) fcontrol.getMock();    
  
  
         
        fcontrol.reset();   
  
         
        fmock.getBean("client");   
        control.setReturnValue(new Client(),1);   
  
         fmock.getBean("order");   
       control.setReturnValue(new Order(),1);   
  
  
        control.replay();         
           
           
  
        OrderService service = new OrderService();    
           
        service.service();   
  
           
        ......   
  
    }  

0 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics