Ik ben nieuw om te overwinteren en probeer goed te beginnen met testen uit de poort. Ik ben verwend door het gebruiksgemak van Grails op dit gebied ... Ik gebruik Springframework 3.0.6 met Hibernate 3.6.8 en Junit 4.9.
Ik probeer te begrijpen waarom de volgende test de EventAttribute Set in het gebeurtenisobject niet "ziet" als een set HibernateProxy-objecten, maar in plaats daarvan gewoon nul. Als ik de samengestelde eigenschappen van een evenement (eigenschappen die zijn gemaakt met objecten in andere tabellen) volg, zie ik ook geen waarden, maar in plaats daarvan nulwaarden.
Het object slaat prima op in de dao, en ik kan eenvoudige eigenschappen zien (eigenschappen in dezelfde tabel). De assertNotNull mislukt echter in de onderstaande test.
Ik vermoed dat er iets mis is met mijn testconfiguratie, zodat de sessie al is afgesloten. Gedachten?
De modellen:
@Entity
@Table(name = "event")
public class Event {
/**
... some other properties ...
*/
@OneToMany(mappedBy = "event")
private Set eventAttributes = new HashSet(0);
/**
... getters and setters ...
*/
}
@Entity
@Table(name = "event_attribute")
public class EventAttribute {
/**
... some other properties ...
*/
@ManyToOne(fetch = FetchType.LAZY)
@ForeignKey(name = "FK_event_attribute_event")
@JoinColumn(name = "event_id", nullable = false)
private Event event;
/**
... getters and setters ...
*/
}
Mijn testconfiguratie:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("dao-testConfig.xml")
@TransactionConfiguration(defaultRollback = false)
@Transactional
public class EventAttributeDaoTest {
@Test
public void save(){
EventAttribute eventAttribute = new EventAttribute("a key", "a value", event);
dao.save(eventAttribute);
Event event2 = eventDao.getEventById(event.getId());
assertNotNull(event2.getEventAttributes());
}
}