Сколько из Grails GORM для тестирования?

Существует ли "лучшая практика" или defacto стандарт с тем, сколько из функциональности GORM нужно протестировать в единице/функциональных испытаниях?

Мое взятие - то, что нужно, вероятно, сделать большую часть домена, тестирующего как функциональные испытания так, чтобы Вы получили полную среду чаш Грааля. Но что Вы тестируете? Вставляет, обновляет, удаляет? Вы тестируете ограничения даже при том, что они были, вероятно, более тщательно протестированы выпуском чаш Грааля?

Или Вы просто предполагаете, что GORM делает то, что он, как предполагается, делает и перемещает в другие части приложения?

7
задан Lloyd Meinholz 5 May 2010 в 04:25
поделиться

2 ответа

Мое общее правило - проверять то, что я пишу. Поэтому, если я напишу собственные методы (или замыкания), я буду их тестировать. Это правило также означает, что я буду тестировать ограничения, поскольку я написал ограничения. Для этого я использую метод mockForConstraintsTests () в GrailsUnitTestCase.

Пример блока ограничений:

static constraints = {
      location(blank:true, nullable:true)
      make(blank:false, nullable:false)
      name(blank:false, nullable:false)
      serviceTag(nullable:true)
      purchaseDate(blank:false, nullable:false)
      checkedDate(blank:false, nullable:false)
      warrantyExpirationDate(nullable:true)
      notes(blank:true, nullable:true)
    }

У меня был бы следующий модульный тест ограничений:

void test_null_constraints_are_checked() {
      mockForConstraintsTests(Hardware)
      def hardware = new Hardware()
      assertFalse hardware.validate()

      assertEquals 4, hardware.errors.getFieldErrorCount()
      assertEquals "nullable", hardware.errors["name"]
      assertEquals "nullable", hardware.errors["checkedDate"]
      assertEquals "nullable", hardware.errors["purchaseDate"]
      assertEquals "nullable", hardware.errors["make"]
}

Это сразу выявляет любые опечатки в моих ограничениях.

Я не тестирую сохранение, создание, обновление и удаление в домене; если это не удастся, то у меня будут большие проблемы!

5
ответ дан 7 December 2019 в 09:58
поделиться

Лично я бы протестировал любые сложные отношения, которые мне не на 100% комфортно настраивать, и любые аксессоры, для которых реализация по умолчанию перезаписана.

1
ответ дан 7 December 2019 в 09:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: