У меня есть набор классов домена и контроллера, называемых Organization и OrganizationController соответственно.Отказывание доменных классов в Grails
THe OrganizationController имеет только один метод:
def index() {
def organizations = Organization.list()
[orgs: organizations]
}
Я пытался издеваться из класса домена 2 способами.
Первый способ использовал @Mock аннотацию, а также создание объектов и сохранение:
void "test index"() {
given:
new Organization(name: 'JIMJIM').save()
new Organization(name: 'ABC').save()
def expected = [org: [new Organization(name: 'JIMJIM'),
new Organization(name: 'ABC')]]
when:
def actual = controller.index()
then:
actual == expected
}
Это вызвало Oraganization.list вернуть пустой список. Фактические доходы [орг: []]
Я также попытался с помощью mockDomain:
void "test index"() {
given:
mockDomain(Organization, [new Organization(name: 'JIMJIM'),
new Organization(name: 'ABC')
])
def expected = [org: [new Organization(name: 'JIMJIM'),
new Organization(name: 'ABC')]]
when:
def actual = controller.index()
then:
actual == expected
}
Однако я до сих пор получил тот же результат. Почему мои классы домена не издеваются?
Мой тест украшения (OrganizationControllerSpec) заключается в следующем:
@TestFor(OrganizationController)
@Mock(Organization)
@TestMixin(DomainClassUnitTestMixin)
class OrganizationControllerSpec extends Specification {
Я использую Grails 2.3.8.
Вы правы в этом! – monksy