Bir API denetleyici yönteminin, yalnızca Name
numaralı Name = FirstName + ' ' + LastName
numaralı bağlantıyı temel alan kullanıcılara (artı burada ilgili olmayan bazı ek durumlar) döndüğünü test etmeye çalışıyorum.Sonuçları bir parametrenin değerini temel alarak dinamik olarak döndüren bir aldatmacayı nasıl kurarım?
GetUsersByName(name)
yöntemini gösteren bir depom var. Kullanıcıların bir dizi kullanıcı listesinden (this.testUsers
) isim ölçütleriyle eşleşen bir List<UserModel>
kullanıcı döndürecek olan bu depo yöntemi için bir kurulum yapmak istiyorum.
aşağıdaki denedim:
this.mockUserReposiotry.Setup(r => r.GetAllUsersByName(It.IsAny<string>()))
.Returns(this.mockUtilities.MockUpUserModel(this.testUsers).Where(u => string.Concat(
u.firstName, " ", u.lastName)
.ToLower().Contains());
ama geri ben maç için moq söylüyorum IsAny<string>
için maddeyi içerir kravat nasıl bilmiyorum.
Bu mümkün mü? IsAny'ye bir parametre vermem gerektiğinden şüpheleniyorum ama benzer örnekler bulamıyorum.
Bu şekilde dalga geçmeniz gereken gerçekten% 100 emin değilim. API denetleyicinizde, havuzunuz tarafından döndürülen verilere bağlı olarak hayati bir mantık var mı? Örneğin. depo veri döndürürse, bu duruma uymazsa, API denetleyicisinde kullanır mısınız? –
@ NKosi'nin yanıtı aşağıdaki gibidir, ancak bir kural olarak, alaycı bir davranış içinde çok fazla mantıktan kaçınmalısınız. Rastgele değerleri SetUp'dan döndürür ve bu değerlere dayanarak veririm. Sadece bir düşüncem gerçek senaryonuzu bilmiyorum. –
@Nasmi Sabeer Genel olarak kabul ediyorum, ancak bu özel yöntem değerleri belirli kriterlere göre döndürmelidir. Bu kriterleri önceden tanımlamazsam, test çalıştırıldığında ihtiyaç duyduğum tüm varyasyonlarda bulunacağından emin olamam. – Necoras