为ServiceMix Web服务编写Junit测试

时间:2015-04-17 19:10:12

标签: rest junit apache-servicemix

我习惯使用Spring并编写Spring RESTful Web服务。编写Spring控制器,传入数据然后验证获取正确的JSON数据没有问题。

现在,我有了一份新工作,他们将RESTful Web服务部署到ServiceMix 4.5作为OSGI jar。

我所拥有的方法有如下定义:

   @GET
   @Path("myWebService")  
   @Trace
   @Override    
   @Produces({MediaType.APPLICATION_JSON})
   @WebResult(name="isDuplicate")
   public MyResponse myWebService(@QueryParam("field1") final String field1, @QueryParam("fieldData") final String fieldData) throws SOAPException  
   {
       final Session session = BundleActivator.getSessionFactory().getCurrentSession();
       Transaction transaction = session.beginTransaction();

       Boolean retVal = new SimpleTransaction<Boolean, Void>()
       {
           @Override
           public Boolean execute(Void nothing)
           {                   
               Criteria criteria = session.createCriteria(tableName);

               try
               {
                    // some logic here   
               }
               catch (JSONException e1)
               {
                   throw new RuntimeException(e1.getMessage());
               }

               List<Object> recordList = (List<Object>)criteria.list();
               if(recordList.size()  > 0)
               {
                   return true;
               }

               return false;
           }

       }.run(transaction, null);

   }
} 

这不是所有代码,但它非常接近。

所以,我需要像我的Spring Unit测试一样做类似的事情。 在不知道所有深层细节的情况下,我知道我加载了Spring应用程序上下文,然后我使用正确的json数据向我的动词(GET,POST,PUT DELETE)传递RESTful Web服务的mockrequest,然后我回到模拟的http响应。

当我使用Google搜索如何测试Spring MVC RESTful Web服务时,我可以很容易地找到所有类型的示例。当我为ServiceMix OSGI网络服务做同样的事情时,我找不到多少。所以,我正在寻找可以接近和看的例子或网址。

如果我需要提供更多信息,请告知我们。

非常感谢!

1 个答案:

答案 0 :(得分:0)

以下是我们使用CamelTestSupport测试camel路由的链接,在您的情况下修改端点,即web服务URL。

http://www.softwarepassion.com/servicemix-fuseesb-unit-testing-your-routes/