3

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

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

下一步需要我检查某些会话值是否存在,但不清楚如何执行此操作?任何人都可以建议吗?我正在创建一个 SessionAccess 特征,为了测试的目的,用一个简单的特征覆盖可访问的 HashMap 中的存储会话,但我确定有更简单的方法吗?

4

1 回答 1

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

希望有帮助。

于 2012-03-06T14:59:04.153 回答