I am using Grails 2.4.3, the latest Webflow plugin and Spring security plugin which I want to test along with the flow.
package reportbyorigin
import grails.test.mixin.TestMixin
import grails.test.mixin.webflow.WebFlowUnitTestMixin
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken
import org.springframework.security.core.Authentication
import org.springframework.security.core.context.SecurityContextHolder
import spock.lang.*
import taackaccess.User
@TestMixin(WebFlowUnitTestMixin)
class AllControllerSpec extends GroovyTestCase {
void setUp() {
User admin = User.findByUsername("admin")
Authentication auth =
new UsernamePasswordAuthenticationToken(admin, null)
SecurityContextHolder.context.authentication = auth
}
def cleanup() {
}
void "test flow user instance"() {
mockController(AllController)
when: "user login"
statEntryFlow.putDatasOnFlow.action()
then: "test flow values"
flow.loggedUser instanceof User
}
}
The tricky parts are "void setUp()" instead of "def setup()", "extends GroovyTestCase" instead of all you can read on the internet, "mockController(<yourcontroller>)".
Hope this sample will help someone.
Aucun commentaire:
Enregistrer un commentaire