2013-02-21 42 views
2

我正在爲play2.1編寫一個測試使用多部分形式使用路由功能的後控制器。序列化多部分形式請求測試在Play 2.1

route(
    FakeRequest(POST, 
    postControllerRoute().url, 
    FakeHeaders(Seq(HeaderNames.CONTENT_TYPE -> Seq("multipart/form-data"))), 
    body = body 
).withAuthToken.withAdmin(adminId)) 

我發現這段代碼工作,我需要定義這種類型的可寫[MultipartFormData [TemporaryFile]因爲我的身體變量的類型的MultipartFormData [TemporaryFile]的寫。我不確定如何序列化多部分請求,或者這是否是正確的方法。有什麼建議麼?

編輯

答:跳過路由器和文檔直接使用的控制器,如:http://www.playframework.com/documentation/2.1.0/ScalaFunctionalTest

回答

2
  • 你有兩個選擇,searializing MultiPartFormData這是(據我可以告訴)很難做到。這篇文章可能有幫助:https://groups.google.com/forum/?fromgroups=#!topic/play-framework/MPtQlX-cWMQ
  • 你可以跳過去通過route方法。如果要在控制器中測試Action,則可以簡單地繞過該路線。請參閱文檔中的Testing your Controllers。如果您不通過路由器,則不需要提供Writable。很少需要通過路由器,基本上讓你首先將它寫成字節(使用Writer),然後(使用主體解析器)將其轉換回Play可以理解的內容。
+0

嗯,是的,但我想測試多部分的形式。我的控制器使用MultipartFormData的身體分析器 – sbilstein 2013-02-22 00:29:33

+0

我很抱歉,昨天我的大腦將'FormUrlEncoded'讀爲'MultipartFormData'。 – EECOLOR 2013-02-22 07:24:46

+1

我編輯了我的答案 – EECOLOR 2013-02-22 07:56:47