我正在处理grails应用程序。在应用程序视图和控制器中只有grails组件。而不是使用域和服务应用程序分别有DTO和BLs java文件。
我正在编写junit测试,其中我需要使用spring安全服务重新验证用户。但是当我运行测试时,它会给我以下错误:
[javac] ... error: package grails.plugins.springsecurity does not exist
[javac] import grails.plugins.springsecurity.SpringSecurityService;
[javac] ... error: package grails.plugins.springsecurity does not exist
[javac] private SpringSecurityService springSecurityService = ...
我不知道为什么即使在导入时我也会收到错误。代码:
import grails.plugins.springsecurity.SpringSecurityService;
....
SpringSecurityService springSecurityService = ...
...
或
在junit测试中还有其他更好的方法来重新验证用户吗?
我用Google搜索如何在junit test 中对用户进行身份验证,但没有找到任何解决方案。
答案 0 :(得分:1)
我不确定为什么会出现这个特殊问题,但是您无法通过单元测试来测试安全性。 Spring Security作为过滤器链实现,因此您需要创建请求并应用链。
这可以被适当地嘲笑,但这将是很多工作。您最好的选择是使用功能测试,实际运行的服务器和实际请求。其他方法的误报风险太高了。