2015-07-01 2 views
1

Я проверяю следующий метод:EasyMock - request.getSession является нулевым

public static String createSn(HttpServletRequest request, String usrnm) { 
    HttpSession session = request.getSession(true); 
    session.setAttribute("UserID", usrnm); 

    return session.getId(); 
} 

С моим JUnit тестового кодом:

HttpServletRequest request = createNiceMock(HttpServletRequest.class); 
HttpSession session = createNiceMock(HttpSession.class); 
expect(request.getSession()).andReturn(session); 

replay(request); 
replay(session); 

String username="testuser"; 
String snID = LogInUtils.createSn(request, username); 

Однако эти линии, кажется, производит Null Pointer Exception:

HttpSession session = request.getSession(true); 
session.setAttribute("UserID", usrnm); 

В заключение request.getSession(true) dosen't, похоже, работает для моего запроса Mock. Где я ошибся?

Спасибо за ваш вклад :)

ответ

4

Вы должны использовать:

expect(request.getSession(true)).andReturn(session); 

В вашем примере вы издеваться метод request.getSession() который не вызывается в коде.