【问题标题】:How to TestNG tests a @PreAuthorize annotation and its spring EL specified by a spring MVC Controller?如何TestNG测试@PreAuthorize注释及其由spring MVC控制器指定的spring EL?
【发布时间】:2013-03-10 11:51:11
【问题描述】:

我已经在我的 Spring MVC 控制器中定义了这个方法

@PreAuthorize("isAuthenticated() and hasPermission(#request, 'CREATE_REQUISITION')")
    @RequestMapping(method = RequestMethod.POST, value = "/trade/createrequisition")
    public @ResponseBody
    void createRequisition(@RequestBody CreateRequisitionRO[] request,
            @RequestHeader("validateOnly") boolean validateOnly) {
.....
}

然后在我的 TestNG 测试中,我想调用此方法并确保验证 PreAuthorize 条件。当我以正常方式(非测试)调用此方法时,会验证 PreAuthorize。

如果可能的话,如何在 TestNG 测试中测试这个注解,如果它抛出异常,如何捕获异常?

最好的问候

【问题讨论】:

标签: java spring unit-testing spring-mvc testng


【解决方案1】:

您“只”需要在测试中启用 Spring Security。 - 与您在正常应用程序中所做的相同。

顺便说一句:根据我自己的经验,我强烈建议将启用弹簧安全的测试与没有弹簧安全的测试分开。

【讨论】:

    【解决方案2】:

    在我看来,您不必担心在单元测试中进行测试。你应该只测试你的方法。

    相反,您应该为此场景编写集成或功能测试。因为为此将初始化整个应用程序,您可以测试所有场景。

    【讨论】:

      猜你喜欢
      • 2011-07-21
      • 2017-06-24
      • 1970-01-01
      • 2011-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-15
      相关资源
      最近更新 更多