Grails / GORM: противоречивое поведение для классов унаследованных доменов (Тестирование VS Bootstrap) - PullRequest
1 голос
/ 10 октября 2011

Я вижу несоответствие в поведении моего приложения по сравнению с результатами теста, который я имею для унаследованного класса домена.Вот классы, вовлеченные в проблему (только часть предоставленного кода).

class Ticket {
    String title
    String description
    Date dateCreated
    Date lastUpdated
    User postedBy
}

class FacebookTicket extends Ticket {
    FacebookPost facebookPost
}

class FacebookPost {
    String postId
    String message
    String postedById
    String postedByName
    Date createdOnFacebook
    Date lastUpdatedOnFacebook
}

Соответствующий тестовый код:

def facebookPost1 = new FacebookPost(postId:"12345", message:"This post should become a ticket", postedById:"09876",postedByName:"Rowz Roller", createdOnFacebook: new Date(), lastUpdatedOnFacebook: new Date())

facebookPost1.save(flush:true)

def facebookTicket1 = new FacebookTicket (title:"Facebook Ticket1",description:"First FACEBOOK ticket here",postedBy:user1,facebookPost: facebookPost1)

mockForConstraintsTests(FacebookTicket, [facebookTicket1])

assertTrue facebookTicket1.validate() //Succeeds

assertNotNull(facebookTicket1.save()) //Succeeds

def instances = FacebookTicket.list()
assertEquals 1,instances.size() //Fails

assertEquals завершается неудачно с junit.framework.AssertionFailedError: ожидается: <1>, но было: <0>

Однако тот же фрагмент кода отлично работает в Bootstrap, и соответствующий объект даже отображается в список просмотр для FacebookTicket.

Это связано с некоторыми ограничениями при тестировании GORM по классам унаследованных доменов, или я что-то здесь не так делаю?(Тесты Ticket и FacebookPost работают нормально.)

Спасибо.

PS: Пожалуйста, дайте мне знать, если я должен предоставить больше кода.

1 Ответ

2 голосов
/ 12 октября 2011

... была похожая проблема, и было рекомендовано рассматривать ее как интеграционный тест, а не модульный тест. Проблемы ушли.

...