testing - 如何在grails的集成测试中访问 session ?

标签 testing grails integration

在我的项目中,我在登录 Controller 中设置了 session.loggedInUser。但是在集成测试期间,我们不使用登录 Controller 。所以我为 session.loggedInUser 设置了值。但是我不能在那个地方使用 session 。我如何在集成测试中使用 session 。为此提供一些解决方案。提前谢谢你

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
    }
}

类别.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()
    }
}

最佳答案

No such property: RequestContextHolder for class: com.vasco.gs.MaritalStatusIntegrationTest.

只是为了清理,根据 OP,它缺少 RequestContextHolder 的导入。

关于testing - 如何在grails的集成测试中访问 session ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18228604/

相关文章:

javascript - 为 Math.Random(); 编写测试用例;密码战套路

php - Symfony2 FOS RestBundle 测试

json - Grails将LinkedHashMap转换为RoundTrip上的JSON保留顺序

grails - Grails如何将枚举映射到数据库上的现有枚举

matlab - 有没有办法在 Matlab 中集成函数的对数 f(x) 而无需定义例如 l = log(f(x)?

integration - 在 Liferay 和 Alfresco 之间集成 WCM

node.js - Nest.js 测试错误 : Using the "extends Logger" instruction is not allowed in Nest v8. 请改用 "extends ConsoleLogger"

c# - 如何测试以匿名类型返回 Task<IHttpActionResult> 的 Controller 方法

Grails重复异常处理

java - 带有 Java 应用程序的 Qlik Sense Engine