Tôi đã tạo một kiểm tra thông số kỹ thuật, để xác thực một số phân tích cú pháp JSON. Mặc dù thử nghiệm hoạt động tốt, nhưng nó cảm thấy khá ồn ào.Có một trình so khớp thông số nào sẽ bỏ chọn tùy chọn và một trong số
Tôi tự hỏi nếu có mã hiện có trong Thông số kỹ thuật cho tùy chọn bỏ hộp và chọn?
"twitter json to Scala class mapper" should {
"parsing a tweet" in {
TwitterJsonMapper.tweetP(tweetS) match {
case Right(t: Tweet) => {
implicit def unOption[T](t: Option[T]): T = t.get
implicit def unEither[T](t: Either[T,Throwable]): T = t match {case Left(left) => left ;case Right(t) => throw t}
"test id" in {
true must_== (t.id.get == 228106060337135617l)
}
"test id_str" in {
true must_== (t.id_str.get == "228106060337135617")
}
"test time" in {
true must_== (t.created_at.getHours == 13)
}
}
case Left((pe: JsonParseException, reason: String)) => fail(reason + "\n" + pe)
}
}
}
//The Tweet is produced from JSON using Fasterxml's Jackson-Scala library.
//I want to use Option or Either monads over all child attributes - for the usual reasons.
case class Tweet(
@BeanProperty contributors: Option[String],
@BeanProperty coordinates: Option[String],
@BeanProperty @JsonDeserialize (
using = classOf[TwitterDateDeserializer]
) created_at: Either[Date,Throwable],
@BeanProperty favorited: Boolean = false,
//elided etc etc
@BeanProperty id_str: Option[String]
}
Vâng, hãy xem hướng dẫn quẹt: http://etorreborre.github.com/specs2/guide/org.specs2.guide.Matchers.html#Matchers –
Ah, ok. Tôi quên nói, tôi vẫn còn trên Specs 1. Chỉ có rất nhiều thời gian để chi tiêu vào việc nâng cấp các thư viện của tôi. Tính năng này có nằm trong Thông số 1 không? –
Rất khó để có được một scala/maven/eclipse/specs đáng tin cậy - toolchain - up và đang chạy. Tôi có thông số kỹ thuật để làm việc với Eclipse và đóng băng phần phụ thuộc của tôi. –