Обычно я заканчивал писать тестовые примеры для домена, записывая их для ограничений и любых настраиваемых методов (созданных нами в приложении), поскольку мы знаем, что мы не должны проверять очевидные.Grails: Spock: Unit testing Gorge domain class hooks
Но когда мы начали использовать плагин плагина, мы обнаружили, что наша доменная строка кода не полностью покрыта, что было связано с перехватами gorm (onInsert, beforeUpdate), для которых мы никогда не писали тестовые примеры.
Есть ли способ, который мы можем проверить. Одним из возможных способов, которые кажутся очевидными, но не подходящими, является вызов другого метода (содержащего весь код, который был ранее на крючках) внутри этих крючков, и проверить этот метод только и быть беззаботным для крючков.
Любые решения ...
Редактировать
Пример кода в домене, который я хочу юнит-тест:
class TestDomain{
String activationDate
def beforeInsert() {
this.activationDate = (this.activationDate) ?: new Date()//first login date would come here though
encodePassword()
}
}
Как блок-тест beforeInsert или я закончу ли запись теста интеграции?
Может быть, вы можете разместить пример код и соответствующий тест блока? – kazanaki
@kazanaki, см. Мое редактирование выше. –
Хорошо. Но где же единичный тест? Что вы хотите проверить? Сам метод beforeInsert или тот факт, что Grails называет его, когда вы ожидаете его вызова? – kazanaki