我在 Visual Studio 11 中使用 Microsoft Fakes 测试版。如何验证我的测试系统是否调用了依赖项的方法?
问问题
4524 次
3 回答
13
由于验证功能不包含在 Microsoft Fakes Beta 中,因此下面的代码是对是否调用依赖项上的方法的基本测试。您可以增强true
测试以测试正确调用的参数值或其他条件。
测试:
[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);
}
课程:
public class First
{
readonly Second _second;
public First(Second second) { _second = second; }
public void DoIt() {
//_second.DoIt();
}
}
public class Second {public void DoIt(){}}
取消注释上面的行以查看测试通过。
于 2012-04-30T20:52:34.473 回答
9
使用 Microsoft Fakes 框架进行行为验证的另一个选择是使用 Microsoft.QualityTools.Testing.Fakes.Stubs 命名空间中包含的 StubObserver 类。使用该框架,您可以为依赖项生成一个存根。然后在您的 Stub 上,您可以将 InstanceObserver 属性设置为新的 StubObserver。使用 StubObserver 类,您可以“查询”对您的依赖项进行的方法调用。您的测试方法如下所示
//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"));
于 2012-12-10T04:12:02.437 回答
4
于 2013-03-12T05:15:44.040 回答