我正在尝试使用easyMock编写测试,在以下代码中测试SecurityException。
例如。对于NumberFormatException,我使用下面的代码。
EasyMock.expect(mockEntityManager.find(UserProfile.class, “ABC”))。andThrow(新 NumberFormatException的());
关于什么期望抛出SecurityException的任何想法?
public Object getAsObject(FacesContext facesContext,UIComponent uiComponent,String s){
EntityManager entityManager =(EntityManager)Component.getInstance(“entityManager”);
if (s == null || s.equals("null")) { return null; } else { try { long i = Long.parseLong(s); return entityManager.find(UserProfile.class, i); } catch (NumberFormatException e) { logger.error(e); } catch (SecurityException e) { logger.error(e); } } return null; }
答案 0 :(得分:0)
我觉得你没有写过那段代码,这就是为什么你想知道什么可能会抛出SecurityException
。答案是 nothing ,只要您使用的是EntityManager的良好实现。
EntityManager.find()enter link description here的文档版本不会抛出SecurityException
。 但是如果您在使用自定义版本的EntityManager的J2EE应用服务器中运行该代码,则可能会抛出该异常......但我认为不应该这样做。
答案 1 :(得分:0)
感谢您的回复。我所做的就是期待SecurityException。
MyClass abc = new MyClass();
EasyMock.expect(mockEntityManager.find(MyClass.class,111L)).andThrow(new SecurityException());
EasyMock.replay(mockEntityManager);
Object target = abc.getAsObject(mockFacesContext, mockUiComponent,"111");
Assert.assertEquals(null, target);