2016-06-30 6 views
0

Ich weiß nicht, wie man mehrteilige Daten in der Spielskala Testfall (Specs2) sendet. In meinem Projekt erhält Methode mehren Daten, Code aussieht wie dieseWie man Daten mit MultiPart/Form-Daten in Play scala bildet?

def school_register() = Action(parse.multipartFormData) { implicit request => 
} 

In meinem Testfall Specs2 mit wie manuell mehren Daten bilden und die school_register Verfahren getroffen werden soll. Sobald Methode hitted Werte in DB eingefügt werden. Ich habe vier Parameter regno = 100, name = "xxxx", Adresse = "xxx", std = 5. Ohne multipart funktioniert das aber ich muss mehrteilige Daten verwenden. Ohne Mehrteiliger ich verwende wie dieses

"com.example.schooladmin" should { 
       "responds with 200 for addSchoolRegister action with all required parameters" in new WithApplication { 
         val controller = new TestController() 
         val result = controller.school_registerr() .apply(FakeRequest().withFormUrlEncodedBody(
    “Reg No” -> “100”,“Name” -> “XXX”,“Address” -> “XXXXX”,“std” -> “5”)) 
         status(result) must equalTo(OK) 
       } 
     } 

Antwort

0

Hier ist, wie ich das mache, schaffe ich eine temporäre Datei und poste ich es mit withMultipartFormDataBody:

val tempFile = TemporaryFile(new java.io.File("../server/idCards/5e7b7c6c-98b3-4245-a5fb-405c9cc904f4")) 
val part = FilePart[TemporaryFile](key = "picture", filename = "the.file", contentType = Some("image/jpeg"), ref = tempFile) 
val formData = MultipartFormData(dataParts = Map(), files = Seq(part), badParts = Seq(), missingFileParts = Seq()) 

val Some(result) = route(FakeRequest(userDomain.routes.UserController.createIdCard()) 
    .withMultipartFormDataBody(formData)) 

status(result) mustEqual OK