我测试了一种仅使用以下代码向portletsession添加属性的方法:
@Test
@PrepareForTest({ActionRequest.class, ActionResponse.class, LocalizedLoggerFactory.class})
public void test_addConfigCookiesFromSession() {
PowerMockito.mockStatic(LocalizedLoggerFactory.class);
ActionRequest request = PowerMockito.mock(ActionRequest.class);
PortletSession session = PowerMockito.mock(PortletSession.class);
when(request.getPortletSession()).thenReturn(session);
List<String> list = new ArrayList<String>();
list.add("prueba");
ConfigPortlet configPortlet = new ConfigPortlet();
configPortlet.addCookiesToSession(request, list);
assertNotNull(session.getAttribute("exemptCookiesListSession"));
}
在addcookiestosession内部,我只添加一个像这样的列表:
PortletSession portletSession = request.getPortletSession();
portletSession.setAttribute("exemptCookiesListSession", listExemptCookies);
但是当我做断言时,我在
session.getattribute
中没有null。我在做什么错? 最佳答案
您的“会话”变量是一个模拟对象。当您在模拟对象上调用“ setAttribute()”时,它将不会执行任何操作。此后调用“ getAttribute()”将不会获得您在调用中发送给“ setAttribute()”的值。
听起来您需要的是这样的(对mockito具有静态导入):
verify(session).setAttribute(eq("exemptCookiesListSession"), anyList());