Помогите с ошибкой теста Grails - методы домена не работают? - PullRequest
1 голос
/ 06 мая 2011

С учетом этой услуги:

class AchievementsService {

    static transactional = true

    public void onEvent(String eventName, User user) {
        def event = Event.findByName(eventName)
        if (!event) {
            event = new Event(name: eventName, autoConfigured: true)
            event.save()
        }
    }
}

Почему этот тест не пройден:

class AchievementsServiceTests extends GrailsUnitTestCase {
    AchievementsService service
    User user
    protected void setUp() {
        super.setUp()
        service = new AchievementsService()
        user = new User(username:"marty",password: "password")
        mockDomain(User,[user])
    }

    void testThat_given_eventDoesNotExistWhenCallingOnEvent_that_eventIsCreated()
    {
         mockDomain Event       
         service.onEvent "MyEvent", user
         assert Event.count() == 1
    }
}

Сбой следующим образом:

Assertion failed: 

assert Event.count() == 1
             |       |
             0       false

Я должен пропустить шаг либо в моей настройке, либо при вызове моего .save() метода, но я не вижу его.

1 Ответ

2 голосов
/ 08 мая 2011

У вас может быть ошибка проверки, добавьте этот код в службу для печати ошибок проверки:

if (!event.save()) { 
  event.errors.each{println it} 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...