2012-11-24 3 views
1

specs2를 사용하여 Play 프레임 워크에서 여러 URL을 테스트하는 방법을 알아 내려고하고 있는데 여러 서버를 시작하지 않고 올바른 방법을 찾지 못하는 것 같습니다.Play framework specs2 url testing

import org.specs2.mutable._ 

import play.api.test._ 
import play.api.test.Helpers._ 
import play.api.libs.ws.WS 

class testServer extends Specification { 

    running(TestServer(9000)) { 
    "Server starts" in { 
     await(WS.url("http://localhost:9000").get).status must equalTo(OK) 
    } 
    "Who" in { 
     await(WS.url("http://localhost:9000/url1").get).status must equalTo(OK) 
    } 
    "How" in { 
     await(WS.url("http://localhost:9000/url2").get).status must equalTo(OK) 
    } 
    "Why" in { 
     await(WS.url("http://localhost:9000/url3").get).status must equalTo(OK) 
    } 
    "Test4" in { 
     await(WS.url("http://localhost:9000/url4").get).status must equalTo(OK) 
    } 
    "Test" in { 
     await(WS.url("http://localhost:9000/url5").get).status must equalTo(OK) 
    } 
    "Help" in { 
     await(WS.url("http://localhost:9000/url6").get).status must equalTo(OK) 
    } 
    "Bogus" in { 
     await(WS.url("http://localhost:9000/url7").get).status must equalTo(OK) 
    } 
    } 
} 

답변

2

답변보기 this question을 참조하십시오. 각 예제에 대해 새 컨텍스트를 만들어야합니다. 예를 들어 다음과 같이 쓸 수 있습니다 :

import org.specs2._ 
import execute._ 
import specification.AroundExample 

class testServer extends Specification with AroundExample { 
    def around[R <% Result](r: =>R) = 
    running(TestServer(9000))(r) 

    "Server starts" in { 
    await(WS.url("http://localhost:9000").get).status must equalTo(OK) 
    } 
    ... 
}