Grails 3에서 어떤 클래스에 대한 단위 테스트를 작성할 때 @TestFor
주석을 사용하여 테스트하려는 클래스를 지정할 수 있습니다. 내 단위 테스트에서는 서비스를 테스트 할 때 테스트중인 클래스가 컨트롤러이고 필드가 "서비스"인 경우 필드 "컨트롤러"가 있으며이 필드를 "테스트중인 시스템"으로 사용할 수 있습니다.@TestFor는 도메인의 단위 테스트에서 무엇을합니까?
@TestFor
은 도메인 클래스에 대한 테스트에서 어떻게 사용되고 있는지 궁금합니다. 나는이 사건을 다루는 문서를 찾을 수 없었다. 이 전 도메인 "MYDOMAIN"과 같이 시작하는 테스트 "MyDomainSpec"가 있다고 가정 해 봅시다 :
@TestFor(MyDomain)
class MyDomainSpec extends Specification {
def setup() {
def doesntMatter = domain // just to check access to "domain"
마지막 줄이 이미 나에게
org.codehaus.groovy.runtime.typehandling을 제공합니다. GroovyCastException : 클래스에 클래스의 java.lang.Class의 '와'클래스 MYDOMAIN를 '개체를 캐스팅 할 수 없습니다 아마 Grails는이 클래스의 인스턴스로 MYDOMAIN 클래스를 나타내는 개체를 사용하려고 것을 의미한다'MYDOMAIN '
. 왜 이런 일이 일어나고 코드에 어떤 문제가 있는지 궁금합니다. 내 말은, domain
속성이 존재하며, 이유가 무엇입니까, 그렇지 않습니까? 단순히 액세스 할 때 예외를 throw하는 속성을 사용하려면 어떻게해야합니까?
분명히 예외가 도메인 클래스가의 필드 String name
가있는 경우에만 발생합니다
업데이트. 나는이 분야에 대해 무엇이 특별해야하는지 전혀 모른다. 단순히 버그일까요?
이것은 유용한 기사처럼 보입니다. 그들은 도메인 클래스에서'@ TestFor'를 사용합니다. http://www.christianoestreich.com/2012/11/domain-constraints-grails-spock-updated/ – zero01alpha
@ zero01alpha 이것은 재미있는 독서물입니다. 감사합니다. 그러나 TestFor와 관련하여 그들은 "mockForConstraintsTests"메소드를 사용할 수 있다고 언급합니다. – Matthias