1

私のプロジェクトでは、ログイン コントローラーに session.loggedInUser を設定しました。ただし、統合テスト中は、ログインコントローラーを使用しません。だから私はsession.loggedInUserの値を設定しました。しかし、私はその場所でセッションを使用できませんでした。統合テストでセッションを使用するにはどうすればよいですか。これに対する解決策を教えてください。前もって感謝します

class MaritalStatusIntegrationTests {

    @Test
    void testCategoryAudit() {

        RequestContextHolder.currentRequestAttributes().session.loggedInUser="Anantha"
            def category = new Category(name:"Single")

        category.save(flush:true)
        assert CategoryAudit.count() == 1

        category.name="Married"
        category.save(flush:true)
        assert CategoryAudit.count() == 2
    }
}

Category.groovy:

class Category {
    static constraints = {
        name blank:false
    }
    String name

    //Auditing
    static auditable = false
    def onSave = {
        new CategoryAudit(this,'Insert').save(failOnError:true)
    }
}

CategoryAudit.groovy:

import org.springframework.web.context.request.RequestContextHolder
class CategoryAudit {
    String name
    String operation
    String doneBy
    Date txnDate
    def CategoryAudit(){}
    def CategoryAudit(Category category , String operation) {
        this.name = category.name
        this.operation = operation
        this.doneBy = RequestContextHolder.currentRequestAttributes().session.loggedInUser
        this.txnDate = new Date()
    }
}
4

1 に答える 1

2

そのようなプロパティはありません: クラスの RequestContextHolder: com.vasco.gs.MaritalStatusIntegrationTest.

OPによると、クリーンアップするために、のインポートがありませんでしたRequestContextHolder

于 2013-08-16T16:49:03.067 に答える