2010-01-26 18 views
7

Aşağıdaki koduMoq ile alay listesi dönen nesne alay

 public void CleanUp() 
    { 
     List<ITask> tasks = _cleanupTaskFactory.GetTasks(); 

     //Make sure each task has the task.Execute() method called on them 
    } 
test etmeye çalışıyorum Testimde _cleanupTaskFactory alaycı bir uygulama yaratıyorum ve bir tür döndürmek için GetTasks() yöntemini kullanmak istiyorum:

List<Mock<ITask>> 

. .. ama derleyici bunu bir dönüş değeri olarak kabul etmeyecek.

Amacım, döndürülen her görevin, Verify() MoQ yöntemini kullanarak çağrılan .Execute() yöntemine sahip olduğundan emin olmaktır.

Her görevin yürütüldüğünü nasıl söyleyebilirim?

cevap

10

sadece böyle bir şey yapabileceğini aşağıdadır: Şimdi

var mocks = new List<Mock<ITask>>(); 
for(var i = 0; i < 10; i++){ 
    var mock = new Mock<ITask>(); 
    mock.Setup(t => t.Execute()).Verifiable(); 
    mocks.Add(mock); 
} 

_cleanUpTaskFactoryMock.Setup(f => f.GetTasks()).Returns(mocks.Select(m => m.Object).Tolist()); 

mocks listeye bir başvuru tutmak için emin olun ve size test ile yapıldığında tüm mocks üzerinde yineleme ve Verify() gibi aramaları şu şekilde yapın:

mocks.ForEach(m => m.Verify()); 
+1

+1 Beni buna dövüyorsun: / –

İlgili konular