2014-10-22 1 views
4

Спрей говорит, что любые нормальные типы данных, включая Seq, получат (не) маршсаллированные в/из JSON, автоматически. По какой-то причине я не испытываю этого.Как проверить массив JSON от ответа Spray GET?

import spray.json._ 
import DefaultJsonProtocol._ 
... 

class RestAPITest 
    extends FlatSpec 
    with Matchers 
    with ScalatestRouteTest 
    with MyRoute 
{ 
    ... 

    behavior of "MyRoute" 

    it should "return a list as JSON" in { 
    Get("/computers") ~> myRoute ~> check { 
     status should equal(OK) 

     // 'sbt test' gives: 
     // "could not find implicit value for evidence parameter of type spray.httpx.unmarshalling.FromResponseUnmarshaller[Seq[String]]" 
     // 
     responseAs[Seq[String]] should contain theSameElementsAs(List("A01", "A02", "A03", "E01", "G04")) 
    } 
    } 

Что я делаю неправильно?

+4

Попробуйте добавить 'импорта spray.httpx.SprayJsonSupport._'. – jrudolph

+0

Кажется работать, спасибо! (еще некоторые проблемы я увижу завтра подробно) – akauppi

+0

Это и обновление до Spray 1.3.0. Линия «responseAs» в прекрасной своей простоте! Иди спрей-джсон и скала! :) Если вы дадите комментарий, я с радостью его одобрю. – akauppi

ответ

0

Закончено перемешивание в значении spray.httpx.SprayJsonSupport к моему тестовому классу, чтобы четко указать, что происходит. Этот кусок просто драгоценный камень - делает тестирование JSON REST API в основном однострочным! Счастливый.

http://spray.io/documentation/1.1-SNAPSHOT/spray-httpx/spray-json-support/

Благодаря @jrudolph :)