在解决了mi第一个mockito问题之后,我发现了我的第二个(非常类似于我的第一个,但我不知道如何解决它)
我有这个休息的java函数:
@GET
@Path("/deleteEmployee")
@Produces("application/json")
public ReturnCode deleteEmployee(@QueryParam("empId") String empIdToDelete)
{
ReturnCode returnCode = new ReturnCode(Constants.NO_ERROR_CODE, Constants.NO_ERROR_TEXT);
SessionFactory sessionFactory = (SessionFactory) context.getAttribute("SessionFactory");
和这个测试:
@Test
public void testDeleteServlet() throws Exception {
ServletContext context = mock (ServletContext.class, RETURNS_DEEP_STUBS);
SessionFactory factory = contextInitialized();
when(context.getAttribute("SessionFactory")).thenReturn(factory);
new EmployeeOps().deleteEmployee("33");
}
为什么总是在SessionFactory中使用空指针崩溃sessionFactory =(SessionFactory)context.getAttribute(“SessionFactory”);?
答案 0 :(得分:0)
固定。
我已经更改了添加方法
的java应用程序protected void setContext(ServletContext context)
{
this.context= context;
}
我改变了测试:
@Override
@BeforeClass
public void setUp() throws Exception {
context = mock (ServletContext.class, RETURNS_DEEP_STUBS);
employeeOps = new EmployeeOps();
employeeOps.setContext(context);
}
@Test
public void testDeleteServlet() throws Exception {
SessionFactory factory = contextInitialized();
when(context.getAttribute("SessionFactory")).thenReturn(factory);
employeeOps.deleteEmployee("41");
}
有了它,它工作正常。 谢谢大家!