Сколько Grails GORM нужно проверить? - PullRequest
7 голосов
/ 05 мая 2010

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

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

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

Ответы [ 2 ]

5 голосов
/ 06 мая 2010

Мое общее правило - проверять то, что я пишу. Поэтому, если я напишу пользовательские методы (или замыкания), я буду их тестировать. Это правило также означает, что я проверю ограничения, так как я написал ограничения. Для этого я использую метод 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"]
}

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

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

1 голос
/ 05 мая 2010

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

...