2016-03-09 4 views
0

Я написал три простые трансформаторы JSon с валидацийиспытаний для JSon трансформаторов в рамочном Play 2.x

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")) 
    } 
    ... 
} 

, но я могу не понимаю, как я должен протестировать третий трансформатор. Он состоит из первых двух, но как я могу это проверить? Поэтому я должен написать те же тесты для третьего трансформатора?

ответ

0

насчет:

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

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

Если 'validateDefaultReminder' будет изменен (например, метод шаблона будут удалены) тест будет успешным, но должны потерпеть неудачу. Поэтому я должен проделать такой же тест и для сложного трансформатора. –

+0

Это пройдет, потому что вы удалили проверку. так как код действительно будет работать, поэтому я не уверен, в чем проблема? вы хотите, чтобы тест потерпел неудачу, если код был изменен? а не когда ломается логика? если это так, вам нужно проверить определения трансформатора, а не логику трансформатора. – Tomer

+0

Я не могу понять, как тест, потому что, если я тестировал класс, и у меня есть значение этого класса в другом классе, я уверен, как работает второй класс. Но с трансформаторами я не знаю, из чего он собрался. –

Смежные вопросы