1

我已经在我的 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 测试中测试这个注释以及如果它抛出一个异常,如何捕获异常?

最好的祝福

4

2 回答 2

2

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

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

于 2013-03-21T04:45:37.533 回答
2

您“只”需要在测试中启用弹簧安全性。- 与您在正常应用程序中所做的相同。

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

于 2013-03-21T06:00:19.833 回答