在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