2010-07-05 20 views

cevap

7

Kur yöntemi Örneğin sahte nesne üzerine beklentilerini belirlemek için kullanılır: Burada

mock.Setup(foo => foo.DoSomething("ping")).Returns(true); 

sen alay nesne üzerinde DoSomething yöntemi ayarlıyorsunuz. Parametre "ping" olduğunda, yöntem true değerini döndürür.

Artık bu nesne, kullanımınıza bağlı olarak sahte veya saplama gibi davranabilir. Devlet tabanlı testte kullanmak istiyorsanız, bir saplama olarak hareket edebilir. Davranış temelli testlerde kullanmak istiyorsanız, sahte olarak hareket edebilir.

http://martinfowler.com/articles/mocksArentStubs.html

http://code.google.com/p/moq/wiki/QuickStart

32

: davranış testi olarak, yöntem "ping" parametresi ile

Ayrıca bakınız bu bağlantıları çağrıldı iddia etmek sahte nesne üzerinde yöntemini doğrulamak arayacak Bir Moq Mock nesnesinin varsayılan davranışı, tüm yöntemleri ve özellikleri saplamaktır. Bu, herhangi bir parametreyle o yönteme/özelliğe yapılan çağrının başarısız olmayacağı ve belirli dönüş türü için varsayılan bir değer döndüreceği anlamına gelir.

  • Sen yöntemine girdi değerleri kısıtlamak istiyorum:

    Aşağıdaki nedenlerden herhangi biri veya tümü için Setup yöntemini çağırın.

public interface ICalculator { 
    int Sum(int val1, val2); 
} 

var mock = new Mock<ICalculator>(); 
mock.Setup(m=>m.Sum(
    It.IsAny<int>(), //Any value 
    3    //value of 3 
)); 

Yukarıdaki kurulum bir val1 için herhangi bir değer ile yöntemle Sum çağrısı ve belirli bir değer döndürmek istiyorum 3.

  • ait val2 değerini eşleşir. ICalculator örneğe devam edersek, aşağıdaki kurulum girdi parametrelerinin bakılmaksızın 10 değeri döndürür:
var mock = new Mock<ICalculator>(); 
mock.Setup(m=>m.Sum(
    It.IsAny<int>(), //Any value 
    It.IsAny<int>() //Any value 
)).Returns(10); 
  • Sen önceki tüm kurulumları denilen doğrulamak için size kurulumları sonra Mock<T>.VerifyAll() kullanmak istiyorum (bir Zamanlar).
var mock = new Mock<ICalculator>(); 
mock.Setup(m=>m.Sum(
    7, //value of 7 
    3    //value of 3 
)); 

mock.Setup(m=>m.Sum(
    5, //value of 5 
    3    //value of 3 
)); 

mock.VerifyAll();  

Yukarıdaki kod Sum iki kez denir doğrular. (7,3) ile ve bir kez (5,3) ile.

+1

Birden çok farklı parametre ayarlamak için yalnızca Setup() öğesini birden fazla arayabileceğinin farkında değildim ve bu onu gördüğüm tek yer. –