2009-02-23 18 views
6

Ben Moq ile başlamak ve ihtiyacım olanı yapmak için iyi bir kaynak bulmakta sorun yaşamaya çalışıyorum.Moq ile eşitleme kümeleri

Bir Veri Arabirimi sınıfına sahip olan ve Depolanan Yordam aracılığıyla bir Veri Kümesini döndüren Get yöntemine sahip. Bu, kodun yazıldığı yoldur ve şu anda bunu değiştiremem, bu şekilde yapılmalıdır.

Bu sınıfı, Veri Kümesi Biriktirerek ve verileri döndürerek test etmek istiyorum, böylece bir veritabanı çağrısı yapmak zorunda kalmam.

Bunu yapan herhangi biri var mı, eğer öyleyse bunu yapmaya başlamak için iyi bir yer neresidir?

cevap

7

DataSet'i doldurmak için veritabanı bağlantısına ihtiyacınız yoktur. Böyle bunu taklit: sahte DataSet'te Dolum

IDataInterface di = new Mock<IDataInterface>(); 
DataSet mockDataSet = CreateMockDataSet(); 
di.Expect(x => x.Get()).Returns(mockDataSet); 
something.UseDataInterface(di.Object); 

oldukça acı verici olsa da. Eğer bunu yapıyorumsa, genellikle sahte DataSet'in önüne geçmek için daha kolay bir cephe arayüzü yerleştiriyorum. Veya kodu doldurmak daha kolay olan bir DataTable kullanmak için değiştiriyorum.

Alternatif olarak, birim sınamalarınız için SQLite veya SQL Server CE gibi yerleşik bir veritabanı kullanın.

+1

um ... Peki CreateMockDataSet() ne yapar? Bu sorunun –

+1

İyi nokta olduğunu düşündüm. OP'nin “DataSet” arayüzüne alay etmek istediklerini düşündüğüne inanıyorum ve cevabım bunun gerekli olmadığını gösteriyor. 'CreateMockDataSet()', sadece bir grup DataTable örneği oluşturacak ve bunları "gerçek" veritabanından döndürülmüş gibi "DataSet" e yerleştirecektir. –