EasyMock глубокие заглушки - PullRequest
       26

EasyMock глубокие заглушки

2 голосов
/ 03 марта 2012

Я должен высмеять следующий шаг безопасности, используя EasyMock или UnitilsMock.Не могли бы вы предложить способ достижения этого?

String id = context.getCallerPrincipal().getName();

Этот шаг связан с безопасностью.Поэтому я не смогу создать объект Принципа и сделать двухуровневую насмешку.Я знаю, что mockito легко обрабатывает такие вещи следующим образом:

@Mock(answer = Answers.RETURNS_DEEP_STUBS)
SessionContext mockContext;

Но мне нужно подобное решение с использованием EasyMock или Unitils Mock.Полный код, который я хочу для модульного тестирования, приведен ниже,

@Override
@PermitAll
public List<Employee> findAll() {
   boolean isAdmin = context.isCallerInRole(Roles.ADMIN);
   if (isAdmin) {
      return super.findAll();
   } else {
      String id = context.getCallerPrincipal().getName();
      Query query = getEntityManager().createNamedQuery("findEmployeeById");
      query.setParameter("employeeId", id);
      return query.getResultList();
   }
}

-Спасибо

1 Ответ

1 голос
/ 03 марта 2012

Если вы можете издеваться над Principal, тогда вы можете заглушить context.getCallerPrincipal(), чтобы вернуть этот макет, затем заглушку mockedPrincipal.getName(), чтобы вернуть все, что вам нужно.

...