【问题标题】:Unit testing JAX-RS (RESTEasy)单元测试 JAX-RS (RESTEasy)
【发布时间】:2024-01-22 17:59:01
【问题描述】:

我已经开发了一个基于 RESTEasy (JAX-RS) 的 REST 应用服务器。

我有一组基于org.jboss.resteasy.mock.MockDispatcherFactory 的服务的单元测试。这些模拟了数据库调用,以便我可以返回“罐装”数据库响应。

在我添加检查 DIGEST Principal (java.security.Principal) 的安全代码之前,一切都运行良好。我编写了一个安全拦截器,它期望检索调用服务的用户的用户身份,并验证该用户是否有权执行服务。

我找不到任何发送模拟校长的方法。

没有在我的单元测试中禁用我的安全检查,有没有办法告诉模拟服务器使用模拟主体?我宁愿禁用安全性,因为这是我想要测试的一部分。

【问题讨论】:

    标签: unit-testing jax-rs restful-authentication


    【解决方案1】:

    我会使用Mockito。 Mockito 使您能够模拟对任何方法的调用,因此很容易产生“假”,由您制造,Principal 对象。有关更多示例,请参阅此 example 或 google “java.security.Principal mocking with mockito”。

    我希望这会有所帮助,因为我不能 100% 确定您是否可以在您的情况下应用这种方法。

    【讨论】: