Test ettiğim sınıfın istediğim gibi çalıştığından emin olmak için, bir birim sınamasında Moq'un nasıl kullanılacağı konusunda biraz tavsiyeye ihtiyacım var. Bu test altındaki sınıf bir Etkinlik Toplayıcı (Prism) etkinliğinden yayınlar ve bu olayın benim testimde ortaya çıktığını iddia etmem gerekiyor.Mocking Prism Event Agregatörü Birim Denetimi için Moq Kullanıyor
İşyerinde çok fazla kaynağım yok ve bunu nasıl ayarlayacağımı bilmek zor.
Ben: -
public SomeEvent : CompositePresentationEvent<SomeEvent>
{
EventPayload
}
public SomeClass
{
void Allocate(){EventAggregator.Publish<SomeEvent>}
}
public SomeService : IService
{
SomeService(){ EventAggregator.Subscribe<SomeEvent>(DoSomething)}
void DoSomething(SomeEvent evt){}
}
Ben benim test SomeClass için ise ben SomeClass.Allocate çağırırsanız bir someEvent mesajı yayınladı olduğunu doğrulamak gerektiğini düşünüyorum. Bu nasıl yapılır?
Ayrıca alaylı bir SomeService'nin SomeEvent ürününü aldığını doğrulamam gerekir mi? Ya da SomeService birim testine ait olan ve bir kaç sınıf değil, ayrı bir birim testi mi?
Her halükarda bunun nasıl ayarlanacağından emin olamamak için herhangi bir tavsiyenin takdir edilmesi gerekir.
Bu örnek, "Oluşturucu Bağımlılığı Enjeksiyonu" nu kullanır, çünkü IEventAggregator üzerindeki bağımlılık SomeClass kurucusu sırasında enjekte edilir. –
Harika cevap, bu bana çok yardımcı oldu. – user630190