2012-04-30 13 views

Respuesta

12

Como la funcionalidad de verificación no está incluida en Microsoft Fakes Beta, el siguiente código es una prueba básica de si se llamó o no un método en una dependencia. Puede mejorar la prueba true para probar valores de parámetros u otras condiciones de una llamada adecuada.

prueba:

[TestMethod] 
public void TestMethod1() 
{ 
    var secondDoItCalled = false; 
    var secondStub = new Fakes.ShimSecond(); 
    secondStub.DoIt =() => { secondDoItCalled = true; }; 
    var first = new First(secondStub); 
    first.DoIt(); 
    Assert.IsTrue(secondDoItCalled); 
} 

Clases:

public class First 
{ 
    readonly Second _second; 
    public First(Second second) { _second = second; } 
    public void DoIt() { 
     //_second.DoIt(); 
    } 
} 

public class Second {public void DoIt(){}} 

de comentario la línea anterior para ver el paso de la prueba.

8

Otra opción que tiene para realizar la verificación de comportamiento con el marco de Microsoft Fakes es utilizar la clase StubObserver incluida en el espacio de nombres Microsoft.QualityTools.Testing.Fakes.Stubs. Usando el marco, generas un stub para tu dependencia. Luego, en su Stub, puede establecer la propiedad InstanceObserver en un nuevo StubObserver. Con la clase StubObserver, puede "consultar" las llamadas a métodos realizadas a su dependencia. Su método de prueba sería algo como continuación

//Arrange 
var dependency = new StubIDependency { InstanceObserver = new StubObserver() }; 
var sut = new SystemClass(dependency); 

// Act 
sut.DoSomething(); 

// Assert 
var observer = (StubObserver)dependency.InstanceObserver;  
Assert.IsTrue(
    observer.GetCalls().Any(call => call.StubbedMethod.Name == "DoSomething")); 
+0

¿Es aplicable alguna manera con el caso de cuñas por 'AllInstances'? – SerG

Cuestiones relacionadas