There is a servlet that adds users to the database using the module instance that is responsible for working with the database. You must test this servlet with a mock object. But how to understand by what scenario the code execution actually went?

How do I make such a mock object to say that if it had an addUser(User) method called from it, would it be addUser(User) from getUser ()?

Sort of:

 //Объект работы с базой ScriptExecutor executor = mock(ScriptExecutor.class); //Как эту строчку при помощи мокито написать? еслиУОбъектаExecutorБудетВызванМетодAddUserТоЕгоМетодGetUserВернетЭтогоЮзера 

Servlet code:

 public class AddUserServlet extends HttpServlet { @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.setCharacterEncoding("UTF8"); try { final boolean success = addUserInDatabase(req); if (success) req.setAttribute("serverAnswer", EDIT_SUCCESS.get()); else req.setAttribute("serverAnswer", ERR_UNIQUE_L_P.get()); req.getRequestDispatcher(ANSWER.get()) .forward(req, resp); } catch (SQLException e) { e.printStackTrace(); } } /** * Addition user in database. * * @return true if addition success, else false. */ private boolean addUserInDatabase(final HttpServletRequest req) throws SQLException { final User user = getUserFromRequest(req); return getDatabaseExecutor().addUserAndGetSuccess(user); } /** * Extracts user's data from HttpServletRequest. * * @return user from request. */ private User getUserFromRequest(final HttpServletRequest req) { return new User( req.getParameter("name"), req.getParameter("login"), req.getParameter("password"), req.getParameter("email"), req.getParameter("role") ); } /** * Get executor database requests. */ private ScriptExecutor getDatabaseExecutor() throws SQLException { final DBJoint db = (DBJoint) getServletContext().getAttribute("db"); return db.getDBScriptExecutor(); } } 
  • can you add the servlet code? - Mikhail Vaysman
  • @Mikhail Vaysman added - Pavel

0