Scala 测试重定向后加载的页面
我有一个测试用例,用来验证在POST调用之后,用户是否被重定向到正确的页面Scala 测试重定向后加载的页面,scala,playframework,specs2,Scala,Playframework,Specs2,我有一个测试用例,用来验证在POST调用之后,用户是否被重定向到正确的页面 "Redirect Page" in { running(FakeApplication()) { val Some(result) = route(FakeRequest(POST, "/product/add/something") .withFormUrlEncodedBody( "Id" -> "666", ) .withSession("ema
"Redirect Page" in {
running(FakeApplication()) {
val Some(result) = route(FakeRequest(POST, "/product/add/something")
.withFormUrlEncodedBody(
"Id" -> "666",
)
.withSession("email" -> "User")
)
status(result) must equalTo(SEE_OTHER)
// contentAsString(result) at this point is just blank
这将验证是否给定了重定向URL。然后如何让单元测试转到重定向的URL,以便验证其内容?您可以使用以下方法测试重定向到的URL:
redirectLocation(result) must beSome.which(_ == "/product/666")
如果要检查内容,请执行重定向:
val nextUrl = redirectLocation(result) match {
case Some(s: String) => s
case _ => ""
}
nextUrl must contain("/product/666")
val newResult = route(FakeRequest(GET, nextUrl)).get
status(newResult) must equalTo(OK)
contentType(newResult) must beSome.which(_ == "text/html")
contentAsString(newResult) must contain("something")
为什么不创建另一个测试来精确地测试新页面,因为重定向到这个页面做得很好:{…}中的“test redirected page”我正在测试新页面,但我不确定如何做,重定向指向正确的新页面。到目前为止,我只验证了它是重定向的,而不是重定向到什么地方。谢谢你的重定向方法。然而,在PlayFramework(Scala)中是否有任何方式可以让测试用例自动重定向。我不想每次都重复重定向逻辑