Java jUnit if/else语句

Java jUnit if/else语句,java,if-statement,junit,mockito,Java,If Statement,Junit,Mockito,我是JUnit测试新手,在为if/else语句编写一个测试时遇到了问题。我编写了一个简单的JUnit测试,但它跳过了所有if-else语句(我需要检查传递的url以进行检查),并转到最后一个else语句。我相信这里的一个问题是url本身没有被检查。如何在JUnit中测试其余的if/else语句(首先测试if/else)。我正在添加java类和Junit测试 protected void doGet(HttpServletRequest req, HttpServletResponse resp)

我是JUnit测试新手,在为if/else语句编写一个测试时遇到了问题。我编写了一个简单的JUnit测试,但它跳过了所有if-else语句(我需要检查传递的url以进行检查),并转到最后一个else语句。我相信这里的一个问题是url本身没有被检查。如何在JUnit中测试其余的if/else语句(首先测试if/else)。我正在添加java类和Junit测试

protected void doGet(HttpServletRequest req, HttpServletResponse resp)
        throws ServletException, IOException
{
    JSONObject jsonObject = null;
    int assetId = 0;
    int journeyId = 0;
    Date selectedDate = new Date();     
    selectedDate.setTime(selectedDate.getTime() - 30 * 1000 * 60 * 60 * 24);


        String[] comps = req.getRequestURI().split("/");
        if (comps.length == 6)
        {
            assetId = Integer.parseInt(comps[5]);

            jsonObject = getJourneys(assetId, selectedDate);
            resp.getWriter().write(jsonObject.toString(4));
        }
        else if (comps.length == 7)
        {
            assetId = Integer.parseInt(comps[5]);
            journeyId = Integer.parseInt(comps[6]);

            jsonObject = getAssetJourneys(assetId, journeyId);
            resp.getWriter().write(jsonObject.toString(4));
        }
        else
        {
            resp.getWriter().write("Entered url is in wrong format, please check it and try again");
        }
    }




@Test
public void testUrl() throws Exception
{
    GPSHistoryService gpsService = mock(GPSHistoryService.class);
    HttpServletRequest req = mock(HttpServletRequest.class);
    HttpServletResponse resp = mock(HttpServletResponse.class);
    PrintWriter pw = mock(PrintWriter.class);

    when(resp.getWriter()).thenReturn(pw);
    when(req.getRequestURI()).thenReturn("url");

    JourneyRestApiServlet jras = new JourneyRestApiServlet(gpsService);
    jras.doGet(req, resp);

    verify(pw).write("Entered url is in wrong format, please check it and try again");
}

当在另一个junit测试中时,您应该修改模拟的

when(req.getRequestURI()).thenReturn("url/url/url/url/url/url/url/url");

为了正确地测试它,您需要制作尽可能多的JUnit

使用调试器并检查comp的长度……您正在将“url”拆分为“/”,因此,数组中只会得到一项。通过在eclipse中使用“Debug jUnit as…”,您可以很容易地看到这些内容。感谢小伙子们的帮助,非常感谢