在Grails 2.0.4中,我试图编写一个调用静态SpringSecurityUtils.reauthenticate的控制器单元测试。测试在该调用中返回一个NullPointerException。在调试器中,我可以看到没有填充SpringSecurityUtils的Groovy动态属性(声明的方法等)。为什么SpringSecurityUtils在这个Grails单元测试中为null?
我注意到在运行测试时,单元测试失败后发出“配置Spring Security Core”日志消息。下面是一个简单的测试:
class ReproTest {
void testSpringSecurityUtils() {
String.valueOf(true) // OK: a public final class from the JDK
URLUtils.isRelativeURL("foo") // OK: a class from another plugin
SpringSecurityUtils.reauthenticate "user", "pw" // fails, NPE
}
}
我最初的反应是,也许插件在单元测试是无法访问的,但如果是这样,为什么是URLUtils呼叫工作?为什么测试“足够”初始化插件,但在测试完成后?
也许http://nerderg.com/Grails帮助您用SpringSecurity进行测试 – 2012-07-06 13:11:51