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"))
}
...
}
, но я могу не понимаю, как я должен протестировать третий трансформатор. Он состоит из первых двух, но как я могу это проверить? Поэтому я должен написать те же тесты для третьего трансформатора?
Если 'validateDefaultReminder' будет изменен (например, метод шаблона будут удалены) тест будет успешным, но должны потерпеть неудачу. Поэтому я должен проделать такой же тест и для сложного трансформатора. –
Это пройдет, потому что вы удалили проверку. так как код действительно будет работать, поэтому я не уверен, в чем проблема? вы хотите, чтобы тест потерпел неудачу, если код был изменен? а не когда ломается логика? если это так, вам нужно проверить определения трансформатора, а не логику трансформатора. – Tomer
Я не могу понять, как тест, потому что, если я тестировал класс, и у меня есть значение этого класса в другом классе, я уверен, как работает второй класс. Но с трансформаторами я не знаю, из чего он собрался. –