0

我正在尝试使用 easyMock 编写一个测试,在以下代码中测试 SecurityException。

例如。对于 NumberFormatException 我使用下面的。

EasyMock.expect(mockEntityManager.find(UserProfile.class,"abc")).andThrow(new 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;  }
4

2 回答 2

0

我感觉您还没有编写该代码,这就是为什么您想知道可能会抛出什么SecurityException。答案是什么都没有,只要您使用的是 EntityManager 的良好实现。

EntityManager.find() 的文档版本在此处输入链接描述不会抛出SecurityException但是,如果您在使用自定义版本的 EntityManager 的 J2EE 应用程序服务器中运行该代码,则它可能会引发该异常......但我认为它不应该。

于 2011-09-28T16:56:23.190 回答
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);
于 2011-10-25T19:05:39.480 回答