2011-09-01 34 views
5

Genel öneri, her zaman veritabanı geçişlerimi sınamalıyım, ancak nasıl yapılacağı iyi korunan bir sır gibi görünüyor;)FluentMigrator geçişlerimi nasıl test edebilirim?

Seçtiğim çerçevem ​​FluentMigration. Ben yapmak istiyorum düşünüyorum ne

geçerli: N-1'e

  1. Geçiş veritabanı.
  2. Bazı verileri kaydedin.
  3. Veritabanını N'ye taşı.
  4. Verileri oku ve kaybolmadığını doğrulayın.
  5. diğer ilgili değişiklikleri

doğrulama Ama benim birim testlerinden taşıma işlemini anlamaya olamaz.

+0

Bu bir entegrasyon testi ve bir birim testi değil. Veritabanına alay olsaydınız, testler oldukça anlamsız olurdu. Ama bu sadece küçük bir kelime oyunu ;-) Richard'ın cevabı senin ihtiyacın olan şey. Aşağı geçişleri de test edecek misin? Yukarı göçler işe yaramıyorsa hemen fark ettiğinizde genellikle böcek içerenler bunlar. –

+0

Bir birim test çerçevesi kullandığımda 'birim testi' terimini kullanıyorum. Bu bir entegrasyon testi, bu tanımı uygun olsa bile emin değilim; entegrasyonla gerçekten ilgisi yok. Ama katılıyorum, bu küçük bir kelime oyunu. –

+0

Aşağı geçişleri test etmek için iyi bir nokta, btw. –

cevap

2

Eğer gerekecek Eğer mstest kullanıyorsanız sadece örnek

var migrator = System.Diagnostics.Process.Start("migrator.exe", "/connection \"Data Source=db\\db.sqlite;Version=3;\" /db sqlite /target your.migrations.dll"); 
migrator.WaitForExit(); 

için Process.Start

kullanarak migrate.exe komutuna ödemek entegrasyon testlerinde göç başlaması için migrator.exe dosyasının bir dağıtım öğesi olarak dahil edildiğinden emin olun veya işlemi başlattığınızda .exe'nin nerede yaşayacağını belirtin.

+0

Benim görüşüme göre, dağıtım öğelerini kullanmak kötü bir alışkanlıktır. Ama MSTest kullanmasam bile, .exe'nin bin-klasörüne kopyalandığından emin olmalıyım? Ya da yolu belirtin mi? –

+0

xUnit veya benzeri kullanırsanız, yalnızca göçmen exe için tam yolu ekleyin –

İlgili konular