olarak adlandırılmıştır Şu anda Birim sınamalarını kullanarak birim sınamaları yazıyor ve bağımlılık alay ediyorum. Bunu yaparken ben şöyle bir Mock yarattık:Alter Mock <IType> nesnesi .Object özelliği
Ancak sonra ben alay biraz daha bu yüzden tekrar Mock nesne üzerindeSetup
diyoruz davranışını değiştirmek istediğiniz üzerinde
Mock<ITraceProvider> traceProviderMock = new Mock<ITraceProvider>();
traceProviderMock.Setup(x => x.GetTraceContext(It.IsAny<string>())).Returns("test");
ITraceProvider traceObj = traceProviderMock.Object;
:
traceProviderMock.Setup(x => x.GetTracer(It.IsAny<string>())).Returns("tracer");
Şimdi tekrar traceProviderMock.Object
'u çağırmadan, bu yeni sahte davranış traceObj
'da mı yansıtılacak? Bu durumda olmak istediğim şey budur.
Bu kesinlikle Verify()
yöntemiyle çalışır, ancak Setup
yöntemi için görünmez.
Bunu yapmak istememin nedeni, takılı bir bağımlılık kullanarak Test Kurulumu yönteminde tam bağımlılık grafiği oluşturduğum gerçeğinden kaynaklanmaktadır. Sadece benim özel testimin alay konusu bağımlılıklarından birinin davranışını değiştirmek istiyorum. Sonraki testler aynı zamanda alaylı bağımlılığa kendi uzmanlıklarını da uygulayacaktır.
'GetTracer' yöntemi test kurulum yönteminizde ayarlandı mı? –
Hayır, belirli bir test yönteminde Kur. Bu mantıklı olursa Mock için özel uzmanlık testidir. –
Bunu bir test yaptım ve benim için çalıştı. 'TraceProviderMock' nesnesini aldıktan sonra 'GetTracer' yöntemini kurabilir ve beklenen değeri döndürdü. İddiaların doğru kurulduğundan emin misin? Henüz yapmadıysanız, hata ayıklayıcısındaki koddan geçebilir misiniz? –