Jax RS PUT方法 - junit测试

时间:2014-02-25 14:24:01

标签: java junit

我有以下3种方法。第一个叫第二个,第二个叫第三个。 junit测试失败,因为所有方法都是“无效”,并且我使用了一个对象来测试junit。

public class Ids
    {

    @PUT

    @Path("/{otherId}")

    @Produces("application/xml")

//First method:

    public Response putTag
                (
                        @Context SecurityContext context
                        , @Context HttpServletRequest req
                        , @Context HttpServletResponse resp
                        , @PathParam("otherId") String otherId
                        , @FormParam("userId") String userId
                ) {

            Map<String, String> obj = new Hashtable<String, String>();

            obj.put("userId", userId);
            obj.put("otherId", otherId);

            putTagMethod(obj);
            return ResponseBuilder.buildResponse("Inserted tag records", MediaType.APPLICATION_XML);    
        }

//第二种方法

public void putTagMethod(Map<String, String> obj) {
        String userId = obj.get("userId");
        String entryId = obj.get("otherId");
        try {
            updateTag(userId, otherId);

        } catch (java.sql.SQLException e) {
            LOGGER.error("java.sql.SQLException: ", e);
            e.printStackTrace();
        } 
    }

//第三种方法

public static void updateTag(String userId, String otherId) throws PersistenceException,  {
        if (...some condition) {
            throw new InvalidParameterException("blah blah blah");
        }

        SpecialData data = null;
        //Update if found, else insert
        if (dataList != null && dataList.size() > 0) {
            data = dataList.get(0);
            update(userId, otherId);
        } else {
            insert(userId, otherId);
}

如何编写Junit测试来测试&#39; Response putTag&#39;方法? 我写了这个(下面)junit,但它给出了错误(

@Test

public void testPutTag() throws Exception
{
    Ids tags = new Ids();
    Map<String,String> obj = new HashMap<String,String>();
    String xml = tags.putTag(obj);
    assertTrue("PUT", xml.equals(
        "<result>insert</result>"));
}

我收到错误:

Incompatible types
required: Map<String, String>
found: void

问题是我需要分配&#39; xml&#39;返回类型,但我的所有方法都无效。

我该如何解决这个问题?

任何人都请指教......

0 个答案:

没有答案