도메인 및 컨트롤러 클래스 집합이 각각 Organization 및 OrganizationController라고합니다. 나는 두 가지 방법으로 도메인 클래스를 조롱하려고했습니다Grails에서 도메인 클래스 조롱
def index() {
def organizations = Organization.list()
[orgs: organizations]
}
:
OrganizationController은 하나의 방법이있다.
첫 번째 방법은 @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
}
. 내 도메인 클래스가 조롱을받지 않는 이유는 무엇입니까? 내가 Grails를 2.3.8을 사용하고
@TestFor(OrganizationController)
@Mock(Organization)
@TestMixin(DomainClassUnitTestMixin)
class OrganizationControllerSpec extends Specification {
:
내 시험 장식 (OrganizationControllerSpec)는 다음과 같다.
맞아요. – monksy