Testing 如何在grails中访问集成测试中的会话?
在我的项目中,我在登录控制器中设置了session.loggedInUser。但是在集成测试期间,我们不使用登录控制器。所以我为session.loggedInUser设置了值。但我不能在那个地方使用会话。如何在集成测试中使用会话。给出一些解决方案。先谢谢你Testing 如何在grails中访问集成测试中的会话?,testing,grails,integration,Testing,Grails,Integration,在我的项目中,我在登录控制器中设置了session.loggedInUser。但是在集成测试期间,我们不使用登录控制器。所以我为session.loggedInUser设置了值。但我不能在那个地方使用会话。如何在集成测试中使用会话。给出一些解决方案。先谢谢你 class MaritalStatusIntegrationTests { @Test void testCategoryAudit() { RequestContextHolder.currentReq
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()
}
}
没有此类属性:类的RequestContextHolder: com.vasco.gs.MaritalStatusIntegrationTest
只是为了澄清一下,根据OP,它缺少对
RequestContextHolder
RequestContextHolder.currentRequestAttributes().session
的导入。您得到了什么错误?没有这样的属性:RequestContextHolder for class:com.vasco.gs.MaritalStatusIntegrationTest。现在导入它的工作状态。