Получение значения сеанса от ScalatraTest-ScalaTest - PullRequest
3 голосов
/ 06 марта 2012

В настоящее время я пишу несколько тестов Scalatra с использованием фреймворка ScalaTest и класса ScalatraSuite.

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

Следующий шаг требует от меня проверить наличие некоторых значений сеанса, но неясно, как это сделать?Кто-нибудь может посоветовать?Я создаю признак SessionAccess, который для целей теста переопределяет простой признак сеанса хранилищ в доступной HashMap, но я уверен, что есть более простой способ?

1 Ответ

2 голосов
/ 06 марта 2012

Я взглянул на код 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")
    }
  }
}

Надеюсь, это поможет.

...