Я делаю простой фрагмент, который должен передать Box [String]
с пользовательским агентом запросов вспомогательному классу, который передает обратно классы css, которые должны быть добавлены к элементу html. Я делаю это, так как кажется сложным заставить Lift предоставлять html-ответ с условными комментариями, как в html5boilerplate. Это то, что у меня есть сейчас, и оно работает:
class LiftBoilerplate {
def render = "html [class+]" #> getClassForUserAgent(S.request)
private def getClassForUserAgent(request:Box[Req]) = request match {
case Full(r) => LiftBoilerplateHelper.getHtmlClass(r.userAgent)
case _ => ""
}
}
Моя проблема в том, что я хотел бы написать для этого модульный тест, например:
object LiftBoilerplateSpecs extends Specification {
val session = new LiftSession("", randomString(20), Empty)
"LiftBoilerplate" should {
"add 'no-js' to the class of an html tag element" in {
val snippet = new LiftBoilerplate
val result = snippet.render(test)
result must ==/(test)
}
}
}
Этот тест не выполняется, поскольку S.request
равен Пусто
. Что мне делать, чтобы предоставить фрагмент с имитацией запроса с агентом пользователя в нем?
До сих пор я смотрел http://www.assembla.com/spaces/liftweb/wiki/Unit_Testing_Snippets_With_A_Logged_In_User
и
http://www.assembla.com/spaces/liftweb/wiki/Mocking_HTTP_Requests
, но я не понимаю, как достичь своей цели.