2012-06-30 3 views
2

저는 grails 초급자입니다. 단위 테스트를 이해하려고 시도했습니다. 도메인 클래스를 만들 때 Author grails가 자동으로 해당 도메인에 대한 테스트 컨트롤러 AuthorControllerTests을 만듭니다.단위 이해 Grails에서 테스트하기

so. 테스트 컨트롤러에서 두 번째 줄은 @Mock (저자)

무엇을 의미합니까? 내가 도메인 클래스를 모의 할 때 얻을 수있는 이점은 무엇입니까? 그것은 extensive documentation on testing에서 말한대로

답변

1

는 :

모의 주석은 어떤 협력자의 모의 버전을 작성합니다. GORM의 메모리 내 구현은 GORM API와의 대부분의 상호 작용을 시뮬레이션합니다. 자동으로 조롱되지 않는 상호 작용의 경우 프로그래밍 방식으로 모조 및 스텁을 정의하기위한 내장 지원을 사용할 수 있습니다.

또한 AuthorControllerTests는 Author 도메인 클래스가 아니라 AuthorController에 대한 테스트입니다.

+0

그래서 Author 도메인에서 작성된 메서드는이 AuthorControllerTests 클래스로 테스트 할 수 없습니까? 저자 도메인 클래스에 대해 별도의 testClass를 만들어야합니까? – monda

+1

할 수는 있지만, 작성자를 사용하는 다른 컨트롤러가있을 수도 있습니다. 도메인도 테스트 할 예정입니까? 도메인 테스트를 사용하여 도메인 객체를 별도로 유지하고 (http://grails.org/doc/latest/guide/testing.html#unitTestingDomains) 컨트롤러 테스트를 통해 컨트롤러를 테스트하려면 (http : /grails.org/doc/latest/guide/testing.html#unitTestingController)을 사용하면 자신을 반복하지 않고 쉽게 찾을 수있는 코드를 얻을 수 있습니다 –

1

무언가를 추가하기 만하면 조롱은 컨트롤러와 같은 코드의 "단위"를 분리해야 할 때 유용합니다.

격리하면 모든 종속성을 복제하고 시뮬레이션하는 간단한 구성 요소를 작성해야합니다. 이 간단한 구성 요소는 우리가 Mocks라고 부르는 것입니다.

Grails는 도메인 클래스를 모방하여 데이터베이스에 정보를 저장하지 않기 때문에 테스트를 더 쉽게 할 수 있습니다.

컨트롤러에서 데이터베이스로 전체 스택을 테스트하려는 경우이를 통합 테스트라고합니다.

희망 하시겠습니까?