EasyMock для тестирования SecurityException - PullRequest
0 голосов
/ 28 сентября 2011

Я пытаюсь использовать easyMock для написания теста, который проверяет исключение SecurityException в следующем коде.

например. для NumberFormatException я использую ниже.

EasyMock.expect (mockEntityManager.find (UserProfile.class, "а")). AndThrow (новый NumberFormatException ());

Есть идеи о том, что ожидать, чтобы бросить SecurityException?

публичный объект getAsObject (FacesContext FaceContext, 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 голосов
/ 25 октября 2011

Спасибо за ваши ответы. Вот что я сделал, чтобы ожидать 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);
0 голосов
/ 28 сентября 2011

У меня такое ощущение, что вы не написали этот код, и поэтому вам интересно, что может выдать SecurityException.Ответ: ничего , если вы используете хорошую реализацию EntityManager.

Документированная версия EntityManager.find () введите описание ссылки здесь не делаетне бросай SecurityException. НО если вы запускаете этот код на сервере приложений J2EE, который использует пользовательскую версию EntityManager, возможно, он вызывает это исключение ... Но я не думаю, что это должно быть.

...