junit来测试一个调用webservice的方法

时间:2013-01-24 05:22:48

标签: junit mockito webservice-client

我是junit的新手。  我需要为以下方法做junit。请指导我

   public boolean binlist(params hpproxy, calendarparam cpxproxy)

      {

       Getbinresponse binresponse;
       cpproxy.setid(hpproxy.getId());
       binresponse= cpproxy.getBinlist(); // resturns a list calling webservice
     if (binresponse.size>0)
      {
      result=true;
            }
         else
         {
          result=false;
         }   
      return result;      
         }

我尝试使用模拟对象测试binlist方法。

    class testbin
     {
    @test
     public void testbinlist()
      {
          Testbin mocktestbin=mock(testbin.class);
      calendarproxy cpproxy=mock(calendarproxy.class);
      params hpproxy= mock(cparams.class);
        hpproxy.setId("123");
         stub(cpproxy.getBinList()).toReturn(gettestbins()) // mocked getbinlist()
        boolen result= mocktestbin.binlist();
          assertTrue(result);


        }

     } 

如何在方法中测试web服务?

1 个答案:

答案 0 :(得分:1)

我认为你在测试中非常适合。我认为你不需要模拟Testbin,因为那是被测试的类。只需创建一个模拟正在作为参数传递的calendarproxy。

因此,测试bin的测试方法看起来就像下面的内容。

class testbin
{
    @test
    public void testbinlist()
    {
        Testbin mocktestbin= new Testbin();
        calendarproxy cpproxy=mock(calendarproxy.class);
        params hpproxy= mock(cparams.class);
        hpproxy.setId("123");
        when(cpproxy.getBinList()).thenReturn(gettestbins()); // mocked getbinlist()
        boolen result= mocktestbin.binlist(hpproxy,cpproxy);
        assertTrue(result);
    }
}