2013-11-12 3 views
0

У меня есть этот метод, который я хочу проверить с помощью JUnit и Mockachino.Тестирование HttpServletResponse addCookie

public void removeCookie(HttpServletResponse response, String name) { 
    Cookie cookie = new Cookie(name, ""); 
    cookie.setMaxAge(0); 
    response.addCookie(cookie); 
} 

Но как?

+0

Почему Mockachino? –

ответ

1

Мой предпочтительный издевательский каркас - Mockito. Но вы можете попробовать это с Mockachino:

@Test 
public void providedNameAndEmptyValueCookieSetToResponse() { 
    String name = "name"; 
    HttpServletResponse responseMock = mock(HttpServletResponse.class, RETURNS_DEEP_STUBS); 

    removeCookie(responseMock, name); 

    Cookie cookie = catchCookie(mock); 
    assertEquals(name, cookie.getName()); 
    assertEquals("", cookie.getValue()); 
} 

private Cookie catchCookie() { 
    ArgumentCatcher<Cookie> catcher = ArgumentCatcher.create(new AnyMatcher(Cookie.class)); 
    verifyOnce().on(responseMock).addCookie(match(catcher)); 

    return catcher.getValue(); 
} 

@Test 
public void zeroMaxAgeCookieSetToResponse() { 
    HttpServletResponse responseMock = mock(HttpServletResponse.class, RETURNS_DEEP_STUBS); 

    removeCookie(responseMock, "any"); 

    Cookie cookie = catchCookie(mock); 
    assertEquals(Integer.valueOf(0), cookie.getMaxAge()); 
} 
+0

Если я запустил 'response.addCookie (cookie);', то как просмотреть файлы cookie, если я сохраню успех? – aircraft

1

позднеготического ответ ради потомства. Вот фрагмент кода я использовал для тестирования addCookie функциональность с помощью EasyMock и обалденный что Capture:

Capture<Cookie> getCookie = new Capture<Cookie>(); 

//mocking 
HttpServletRequest request = new MockHttpServletRequest(); 
Model model = new ExtendedModelMap(); 
HttpServletResponse response = createNiceMock(HttpServletResponse.class); 
MyController controller = createMock(MyController.class); 


// expectation 
response.addCookie(capture(getCookie)); //Capture would look for a Cookie object being sent to the addCookie method and grab that for you 

// invocation 
replay(controller, response); 
String result = controller.someAction(request, response, model); 
verify(controller, response); 

// assertions 
Cookie cookie = getCookie.getValue(); 
assertEquals("myCookie", cookie.getName()); 

удачи.

Смежные вопросы