我目前正在使用ScalaTest框架和ScalatraSuite类编写许多Scalatra测试。
test("when i try to go to the base url it shold redirect me "){
get("/") {
status should be(302)
}
}
下一步要求我检查一些会话值是否存在,但目前还不清楚如何做到这一点?任何人都可以建议吗?我正在创建一个SessionAccess特性,为了测试的目的,用简单的特性覆盖可访问的HashMap中的存储会话,但我确定有一种更简单的方法吗?
答案 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")
}
}
}
希望有所帮助。