EasyMock测试SecurityException

时间:2011-09-28 14:47:55

标签: java unit-testing easymock securityexception

我正在尝试使用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;  }

2 个答案:

答案 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);