5
Bu, mümkün olan bir şey olmayabilir ama yine de sormam gerektiğini düşündüm. Yine de, bu yöntemi kullanmam için ikinci aramanın da test ettiğim yöntemde sağlanan parametreyi kullanarak dışarıda bırakılması için var mı?C# İkinci sesli aramada sabit kodlanmış parametreli stubmethod alayları
yöntem saplama:
public SupportDetails GetSupportDetails(string languageKey)
{
var result = FindSupportDetails(languageKey);
return result ?? FindSupportDetails("en-us");
}
için.Mevcut testi:
public void GetsUSDetails_IfLangKeyDoesNotExist()
{
var langKey = "it-it";
_repo.Stub(s => s.FindSupportDetails(langKey))
.Return(supportDetails.Where(sd => sd.LanguageKey == langKey)
.SingleOrDefault());
ISupportRepository repo = _repo;
var actual = repo.GetSupportDetails(langKey);
Assert.AreEqual("en-us", actual.LanguageKey);
}
ve supportDetails testte kullanılan nesne:
supportDetails = new SupportDetails[]
{
new SupportDetails()
{
ContactSupportDetailsID = 1,
LanguageKey = "en-us"
},
new SupportDetails()
{
ContactSupportDetailsID = 2,
LanguageKey = "en-gb"
},
new SupportDetails()
{
ContactSupportDetailsID = 3,
LanguageKey = "es-es"
}
};
Sadece başka bir çağrı ekleyebilirsiniz, yani '_repo.Stub (s => s.FindSupportDetails (" en-us "))) Geri dön (supportDetails.Where (sd => sd.LanguageKey ==" en- ""). SingleOrDefault()); – stuartd
Bu, ilk saplamanın üzerine yazılmayacak mı? –
Geçilen parametre farklı olduğu için ben inanmıyorum. Gerçi Rhino'yu kullanmamdan beri bir süre oldu. Aksi takdirde [tekrarlama sözdizimi] kullanın (http://www.richard-banks.org/2010/07/mocking-comparison-part-6-multiple.html) – stuartd