2011-07-28 2 views
1

Grails의 새내기 비트입니다. 다음과 같이 hasMany 관계로 연결된 2 개의 도메인 객체가 있습니다.Grails - GORM 관계 테스트

class Accommodation 
    { 
     String id 
     String name 

     static hasMany = [ accommodationDescription : AccommodationDescription ] 

    } 

    class AccommodationDescription 
    { 
     // Accommodation 
     Accommodation accommodation 

     // Description 
     Description description 

     static belongsTo = [accommodation : Accommodation] 
    } 

나는 계단식 삭제 기능을 테스트하는 코드를 작성했습니다. 내 질문은 두 가지입니다.

  1. 단위 테스트에서이 문제가 발생했습니다.

    공극 testAccDescDelete()를

    {

    Accommodation acc = ...create a populated instance 
    
    assert acc.save() // this passes! 
    
    acc.delete() // no errors here 
    
    assert ! acc.hasErrors() // this passes! 
    
    assert acc.accommodationDescription == null // this fails. 
    

    }

:

  • I는 캐스케이드과 같이 삭제 시도 testXXX (...) 방법이 그러나 이것은 작동하지 않으며 주장은 실패합니다. 누군가 제발 말해 줄래?

  • 답변

    0

    개체의 delete를 호출하면 모든 필드가 null로 설정됩니다. 데이터베이스에서 데이터를 삭제하고 인스턴스가 최대 절전 모드 세션에서 분리됩니다. 포함하는 객체의 데이터는 임시 인스턴스로 메모리에 남아 있습니다.

    테스트에서 개체가 삭제되었는지 확인하려면 get()으로 시도하거나 findBy() 메서드를 사용하십시오. 아무 것도 발견되지 않았다는 것을 주장하십시오.

    관련 문제