【发布时间】:2012-03-02 23:06:37
【问题描述】:
我必须使用 EasyMock 或 UnitilsMock 模拟以下安全步骤。您能否建议一种方法来实现这一目标?
String id = context.getCallerPrincipal().getName();
这一步与安全有关。所以我将无法创建一个 Principle 对象并进行两层模拟。我知道 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();
}
}
-谢谢
【问题讨论】:
标签: mocking mockito easymock unitils