lan*_*nce 9 unit-testing rhino-mocks microsoft-fakes
我正在使用Visual Studio 11中的Microsoft Fakes测试版.如何验证我的被测系统是否调用了依赖项的方法?
lan*_*nce 12
由于验证功能未包含在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);
}
Run Code Online (Sandbox Code Playgroud)
类别:
public class First
{
readonly Second _second;
public First(Second second) { _second = second; }
public void DoIt() {
//_second.DoIt();
}
}
public class Second {public void DoIt(){}}
Run Code Online (Sandbox Code Playgroud)
取消注释上面的行以查看测试通过.
使用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"));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4171 次 |
| 最近记录: |