Bütünleştirme testleri yazıyorum ve bir test yönteminde DB'ye veri yazmak ve daha sonra okumak istiyorum. Eğer depolama ve veri okuma arasında görebileceğiniz gibi varsayılan FushMode
böylece hiçbir veri aslında DB saklanabilir AUTO
çünküHazırda bekletme modunun Spring modunda ayarını yaptırma
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:applicationContext.xml"})
@TransactionConfiguration()
@Transactional
public class SimpleIntegrationTest {
@Resource
private DummyDAO dummyDAO;
/**
* Tries to store {@link com.example.server.entity.DummyEntity}.
*/
@Test
public void testPersistTestEntity() {
int countBefore = dummyDAO.findAll().size();
DummyEntity dummyEntity = new DummyEntity();
dummyDAO.makePersistent(dummyEntity);
//HERE SHOULD COME SESSION.FLUSH()
int countAfter = dummyDAO.findAll().size();
assertEquals(countBefore + 1, countAfter);
}
}
, oturum yıkanmalıdır.
Soru: Can Bazı nasıl session.flush()
çağrıyı tekrarlamaktan kaçınmak için oturum fabrikasında ALWAYS
için FlushMode
veya başka bir yere kurdu?
DAO'daki tüm DB çağrıları HibernateTemplate
örneğiyle gider.
Şimdiden teşekkürler.
Spring, "SessionFactory" öğesini sınamaya enjekte edebilir ve 'setUp' içinde geçerli' Session'ı alabilir ve 'setFlushMode()' öğesini çağırabilir misiniz? –