Skip to main content
New Participant
November 14, 2022

How to write the unit test for the given SlingServlet.

  • November 14, 2022
  • 2 replies
  • 1017 views

Hello

 

I have a doGet servlet method like below

 

@3214626 private transient ProductXfQueryService productsService; protected void doGet(@Nonnull SlingHttpServletRequest request, @Nonnull SlingHttpServletResponse response){ response.setContentType("application/json"); PrintWriter out = response.getWriter(); String id = request.getParameter(CAT_ID_PARAM); String variant = request.getParameter("variant"); Session session = request.getResourceResolver().adaptTo(Session.class); ProductCategory category = this.productsService.getCategory(id, variant, session); if (category == null) { response.setStatus(SC_NOT_FOUND); out.write("{ \"error\": \"Could not find category for given id.\" }"); return; } //some code below neglect it... }

 

so I write the testcases like 

@2785667 void testCategory() throws ServletException, IOException { lenient().when(request.getResourceResolver()).thenReturn(resolver); request.addRequestParameter("id","id"); unitTest.doGet(request,response); assertEquals(SC_NOT_FOUND,response.getStatus()); assertEquals("{ \"error\": \"Could not find category for given id.\" }" ,response.getOutputAsString()); }

 

please give me some idea on how to use session and resource resolver in test cases.

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.

2 replies

Mani_kumar_
New Participant
November 14, 2022

Hi @gargkrishna 

This article explains writing JUNITS for sling model and as well to servlet class refer this to get more information.

https://taylor.callsen.me/unit-testing-aem-sling-models-and-servlets/

Hope it is useful.

New Participant
November 15, 2022

in it talk about resources but not about session class.

New Participant
November 15, 2022

I read it. but couldn't find my problem solution.