簡體   English   中英

在Play框架2.x中測試Json變壓器

[英]Test for Json transformers in Play framework 2.x

我用驗證編寫了三個簡單的json轉換器

val validateDefaultReminderMethod = Reads.pattern("email|sms|popup".r, "error.reminder.method (pattern: email|sms|popup)")

val validateDefaultReminderMinutes = Reads.min(0) keepAnd Reads.max(40320)

val validateDefaultReminder = (
    (__ \ "method").json.pickBranch(Reads.of[JsString] keepAnd validateDefaultReminderMethod) and
      (__ \ "minutes").json.pickBranch(Reads.of[JsNumber] keepAnd validateDefaultReminderMinutes)
    ).reduce

對於單元測試的前兩個變壓器,我可以使用簡單的測試,例如

"Default Reminder Method validator" must {
    "is successful for email value" in {
      JsString("email").validate(validateDefaultReminderMethod) must be (JsSuccess("email"))
    }
    ...
}

但是我不明白,我該如何測試第三個變壓器。 它由前兩個組成,但是如何檢查呢? 因此,我必須為第三台變壓器編寫相同的測試嗎?

關於什么:

case class MyClass(method: String, minutes:Int)

"validateDefaultReminder" must {
    "is successful for email value and minutes" in {
        val json = Json.parse("""{ "email: "a@gmail.com", "minutes": 45}""")              
        json.validate[MyClass](validateDefaultReminder) must be JsSuccess
    }
    ...
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM