2016-11-06 2 views
1

У меня есть единичный тест, где я издеваюсь над классом сервиса для сохранения домена. Первоначально мой метод контроллера выглядел следующим образом:Тестирование модуля Grails Pass по ссылке не работает при издевательстве

def save(Long organizationId, Convention convention) { 
    conventionService.save(organizationId, convention) 

    if (convention.hasErrors()) { 
    response.status = HttpStatus.UNPROCESSABLE_ENTITY.value() 
    respond convention.errors 
    } else { 
    response.status = HttpStatus.CREATED.value() 
    respond convention 
    } 
} 

Как правило, это работает, потому что Java является передача по ссылке поэтому convention передается в метод сохранения такой же convention объект на протяжении всего метода. Однако, когда насмехается метод conventionService.save, передача по ссылке не работает. Настройка мой метод учета этого:

def save(Long organizationId, Convention convention) { 
    convention = conventionService.save(organizationId, convention) 

    if (convention.hasErrors()) { 
    response.status = HttpStatus.UNPROCESSABLE_ENTITY.value() 
    respond convention.errors 
    } else { 
    response.status = HttpStatus.CREATED.value() 
    respond convention 
    } 
} 

позволяет мой тест пройти, потому что convention объект это то, что я ожидал от моего издеваться:

1 * service.save(1, _) >> new Convention(
     id: 1, 
     name: 'Con 1', 
     description: 'This is a pretty cool convention, everyone should go', 
     startDate: new Date(), 
     endDate: new Date()+10, 
     organization: organization) 

Мой вопрос, это ожидаемое поведение или ошибка, о которой я должен сообщить?

ответ

1

Мой вопрос в том, является ли это ожидаемым поведением или ошибкой, что я должен быть отчетности?

Ожидаемое поведение. Это не ошибка, о которой вы должны сообщать.

+0

Thanks Jeff. Я принял столько же, но хотел быть уверенным. Я собираюсь объяснить это через пару недель. – Gregg

+0

«Я собираюсь объяснить это через пару недель». - Вы знаете, как это сделать? –

+0

Я так считаю. Я понимаю основную логику его в отношении насмешек в целом. Я просто хотел быть уверенным, что не было волшебства Спока или Гроуви/Грааля, которое бы управляло моими ожиданиями. – Gregg

Смежные вопросы