Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I verify that a Microsoft Fakes (beta) stub/shim was called (like AssertWasCalled in Rhino Mocks)?

I'm using the beta of Microsoft Fakes in Visual Studio 11. How can I verify that a dependency's method was called by my system under test?

like image 772
lance Avatar asked Apr 30 '12 20:04

lance


1 Answers

As verify functionality is not included in the Microsoft Fakes Beta, the code below is a basic test for whether or not a method on a dependency was called. You could enhance the true test to test parameter values or other conditions of a proper call.

Test:

[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);
}

Classes:

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

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

Uncomment the line above to see the test pass.

like image 200
lance Avatar answered Sep 23 '22 16:09

lance