我为我的 Play 应用程序编写了一个过滤器:
object MyFilter {
def apply() = new MyFilter()
}
class MyFilter extends EssentialFilter {
def apply(next: EssentialAction) = new EssentialAction {
def apply(requestHeader: RequestHeader) = {
requestHeader.cookies.get("myCookie") match {
case Some(cookie) => {
requestHeader.session + ("importantValue", cookie.value)
next(requestHeader)
}
case None => {
val importantValue = ... // retrieve the value from somewhere
requestHeader.session + ("importantValue", importantValue)
next(requestHeader).map(_.withCookies(Cookie("importantValue", value)))
}
}
}
}
Play 文档中有很多关于如何编写测试的示例,但我不知道如何对 MyFilter 进行单元测试。有人可以帮我一点吗?
谢谢
托尔本
最佳答案
Play Framework 源代码显示了过滤器的测试。 例如:
val filter = SecurityHeadersFilter()
// Play.current is set at this point...
val rh = FakeRequest()
val action = Action(Ok("success"))
val result = filter(action)(rh).run()
header(X_FRAME_OPTIONS_HEADER, result) must beSome("DENY")
关于scala - 如何为 Play 框架过滤器编写测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23286565/