Spring SecurityCorePluginによって生成されたユーザードメインのコントローラーを単体テストしようとしています。コントローラは、grailsgenerate-allを使用して生成されました。ドメインには、springSecurityServiceと呼ばれる一時的なプロパティがあります。私の単体テストでは、そのサービスをモックし、この一時変数をモックバージョンに割り当てようとしています。ただし、このエラーが発生します:
No such property: springSecurityService for class: com.myapp.security.SecUser Possible solutions:
springSecurityService groovy.lang.MissingPropertyException: No such property: springSecurityService for class:
com.myapp.security.SecUser at com.myapp.security.SecUserControllerTests.setUp(SecUserControllerTests.groovy:26)
これが私のドメインのようです:
class SecUser {
transient springSecurityService
String username
String password
boolean enabled
boolean accountExpired
....
def beforeInsert() {
encodePassword()
}
protected void encodePassword() {
password = springSecurityService.encodePassword(password)
}
}
これが私のテストの様子です:
package com.myapp.security
import org.junit.*
import grails.test.mixin.*
import com.myapp.system.*
import grails.plugins.springsecurity.*
@TestFor(SecUserController)
@Mock([SecUser,SpringSecurityService])
class SecUserControllerTests {
@Before void setUp() {
def service = mockFor(SpringSecurityService)
service.demand.encodePassword(1..2) { a -> return 'd3jk3j4ls234'}
def control = service.createMock()
SecUser.springSecurityService = control
}
何が間違っているのかわからない、または一時的なプロパティでこのようなことを行うことさえできますか?