在Grails 2.0.4中,我正在尝试编写一个调用静态SpringSecurityUtils.reauthenticate的控制器单元测试。该测试在该调用上返回NullPointerException。在调试器中,我可以看到没有填充SpringSecurityUtils的Groovy动态属性(declaredMethods等)。
我注意到在运行测试时,单元测试失败后会发出<配置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调用有效?为什么测试得到“足够的”来初始化插件,但测试完成后呢?
答案 0 :(得分:3)
对于单元测试,容器未启动。没有春天注射或“grails goodness”正在发生。您可以在日志中看到插件在单元测试运行后正在初始化,因为它[container]确实为集成测试启动。如果你想测试SpringSecurityUtils,虽然猜测它已在插件中正确测试,你可能想要编写集成测试。