Я пытаюсь протестировать контроллер для подкласса в Grails 2.4.3. модель домена такая:
abstract class Task { ... }
class SubTask extends Task { ... }
При попытке запустить сгенерированные тесты для класса SubTaskController 3 из 7 тестов терпят неудачу:
- спасти
- Обновить
- удалять
Кажется, что (по крайней мере) идентификатор класса домена не инициализирован, хотя я определил это в методе populateValidParams(). Отладчик показывает два (!) сгенерированных атрибута id в объекте subTaskInstance, оба пустые. Когда я устанавливаю идентификатор в какое-то длинное значение в отладчике, ошибка появляется, по крайней мере, через несколько строк. Есть ли ошибка в насмешках над подклассами или я делаю что-то принципиально неправильное?
Я также пробовал без «абстрактного» в базовом классе, но получил те же ошибки. Сгенерированные тесты отлично работают для объектов, не входящих в иерархию наследования.
Когда я дополнительно устанавливаю атрибут id непосредственно в тестовом коде, тесты завершаются ошибкой при утверждении SubTask.count() == 1
. Кажется, что макет уровня сохраняемости не обрабатывает подклассы.
populateValidParams
не добавляет необходимые параметры запроса. См. проект, указанный в моем ответе ниже. - person Jeff Scott Brown   schedule 21.10.2014