How to write the unit test for the given SlingServlet. | Community
Skip to main content
Level 2
November 14, 2022

How to write the unit test for the given SlingServlet.

  • November 14, 2022
  • 2 replies
  • 1018 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

Level 2
November 15, 2022

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

Mani_kumar_
Community Advisor
Community Advisor
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.

Level 2
November 15, 2022

in it talk about resources but not about session class.