从ScalatTest ScalatTest获取会话值

从ScalatTest ScalatTest获取会话值,scala,scalatest,scalatra,Scala,Scalatest,Scalatra,我目前正在使用ScalaTest框架和ScalatrSuite类编写一些Scalatra测试 test("when i try to go to the base url it shold redirect me "){ get("/") { status should be(302) } } 下一步需要我检查一些会话值的存在性,但不清楚如何做到这一点?有人能提供建议吗?我正在创建一个SessionAccess特征,为了测试的目的,它用一个简单的特征覆盖,

我目前正在使用ScalaTest框架和ScalatrSuite类编写一些Scalatra测试

  test("when i try to go to the base url it shold redirect me "){
    get("/") {
      status should be(302) 
    }
  }

下一步需要我检查一些会话值的存在性,但不清楚如何做到这一点?有人能提供建议吗?我正在创建一个SessionAccess特征,为了测试的目的,它用一个简单的特征覆盖,将会话存储在一个可访问的HashMap中,但我确信有一种更简单的方法?

我查看了ScalatrSuite的代码,看起来没有办法检索会话对象本身。但是,您可以在会话内执行多个调用,以检查预期的行为

如果您有这些电话:

post("/start") {
  session("foo") = params("foo")
  // ...
}

get("/do_something") {
  session.get("foo")
}
您可以这样测试它:

test("Whatever inside of a session") {
  session {
    post("/start", "foo" -> "bar") {
      // assert...
    }
    get("/do_something") {
      body should equal ("bar")
    }
  }
}

希望能有帮助。

我就是这么想的。谢谢你的确认。