2012-09-17 3 views
1

내가 가진 Grails의 테스트 :Grails의 테스트 및 @Transactional

class GormTests extends GroovyTestCase { 
    static transactional = false 
    ... 
} 

내가 org.springframework.transaction.annotation.Transactional 주석에 의해 트랜잭션과 같은 방법을 표시하기 위해 노력하고있어하지만 다음과 같은 예외가 발생 :

org.springframework.aop.framework.AopConfigException: Could not generate CGLIB subclass of class [class GormTests]: Common causes of this problem include using a final class or a non-visible class; nested exception is net.sf.cglib.core.CodeGenerationException: java.lang.reflect.InvocationTargetException-->null 

내가 그것을 어떻게 해결할 수 있습니까?

답변

2

@Transactional은 Spring bean에만 해당되며 테스트 클래스는 bean이 아닙니다. 최선의 방법은 테스트 클래스를 비 트랜잭션 테스트와 비 테스트로 나누는 것입니다.

+0

'withTransaction'클로저를 사용해야합니까? 예 : 'SomeDomainClass.withTransaction {// some logic. }''static transactional = false'가 정의 된 통합 테스트에서'.find()'함수를 사용하고자한다면? –