从ScalatraTest-ScalaTest获取会话值

时间:2012-03-06 13:21:49

标签: scala scalatest scalatra

我目前正在使用ScalaTest框架和ScalatraSuite类编写许多Scalatra测试。

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

下一步要求我检查一些会话值是否存在,但目前还不清楚如何做到这一点?任何人都可以建议吗?我正在创建一个SessionAccess特性,为了测试的目的,用简单的特性覆盖可访问的HashMap中的存储会话,但我确定有一种更简单的方法吗?

1 个答案:

答案 0 :(得分:2)

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

如果您有这些电话:

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

希望有所帮助。