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

How to write the unit test for the given SlingServlet.

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.

Ce sujet a été fermé aux réponses.

2 commentaires

arunpatidar
Community Advisor
Community Advisor
November 14, 2022
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.