我在Visual Studio 11中使用Microsoft Fakes的测试版。我如何验证依赖项的方法是否被我的被测系统调用?如何验证是否调用了Microsoft Fakes(测试版)存根/填充程序(如Rhino Mocks中的AssertWasCalled)?
9
A
回答
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);
}
类:
public class First
{
readonly Second _second;
public First(Second second) { _second = second; }
public void DoIt() {
//_second.DoIt();
}
}
public class Second {public void DoIt(){}}
取消对上述线看到试验合格。
8
您使用Microsoft Fakes框架进行行为验证的另一个选择是使用包含在Microsoft.QualityTools.Testing.Fakes.Stubs命名空间中的StubObserver类。使用该框架,您可以为您的依赖项生成存根。然后在您的存根上,您可以将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"));
4
相关问题
- 1. Rhino Mocks:如何验证构造函数是否被调用
- 2. Rhino Mocks - 在common.Logging上使用AssertWasCalled ILog.Debug
- 3. rhino mocks存根历史
- 4. 尝试使用MvcContrib存根Server.MapPath测试助手和Rhino Mocks 3.5
- 5. Rhino Mocks - 如何测试至少有一组方法被调用?
- 6. 验证事件处理程序存在于Moq vs Rhino Mocks
- 7. Rhino Mocks:在没有“ref”关键字的存根中填充数组参数
- 8. mspec&rhino mocks预计的异常测试
- 9. Rhino Mocks验证私有方法是从公共方法调用
- 10. 是否有可能用Rhino Mocks生成部分存根?
- 11. 在Rhino Mocks中,如何使用null参数存根方法?
- 12. Rhino Mocks存根方法不起作用
- 13. 如何使用Rhino Mocks对ninject的IKernel进行存根?
- 14. 如何使用Microsoft Fakes存根VS 2013中的XMLDocument
- 15. 如何在Rhino Mocks中保存函数调用的参数?
- 16. Rhino Mocks测试文件系统io
- 17. Rhino Mocks返回一个存根?
- 18. 如何找出方法是否在Rhino mocks中的bool值中调用?
- 19. 单元测试getter/setter时,如何使用Rhino-mocks?
- 20. 如何在Rhino Mocks中测试事件注册
- 21. Rhino Mocks:如何在方法调用中模拟方法调用?
- 22. Rhino-Mocks如何模拟?
- 23. Rhino Mocks,如何在设置存根属性后执行动作
- 24. 如何检测是否设置了“调试程序”Windows特权?
- 25. 如何使用Microsoft Fakes进行单元测试Web服务?
- 26. 如何使用自动化测试Microsoft身份验证过程?
- 27. Rhino Mocks,VerifyAllExpectations
- 28. 试图在VS2010中使用Rhino Mocks - 测试不运行
- 29. Rhino Mocks的Arg.Property
- 30. Rhino Mocks&Compact Framework
是否适用某种方式通过'AllInstances'匀场的情况下? – SerG