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() enter link description hereのバージョンでは、がスローされませんSecurityExceptionしかし、 EntityManagerのカスタム バージョンを使用する J2EE アプリケーション サーバー内でそのコードを実行している場合、その例外がスローされる可能性があります...しかし、そうすべきではないと思います。

于 2011-09-28T16:56:23.190 に答える
0

ご回答いただきありがとうございます。

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 に答える