2014-10-06 85 views
1

我试图让一个Shimed构造函数在VB中工作。我能够用C#做到这一点,但我需要一个VB示例。我有下面的代码符合,但测试失败,因为MyCalc.Total调用不使用Shim。如何在VB中创建一个构造函数?

Using ShimsContext.Create() 
    Calc.Fakes.ShimVBCalc.Constructor = Function() New Calc.Fakes.ShimVBCalc() With { 
     .TotalGet = Function() 
      Return 5.0 
      End Function} 
End Using 
MyRealCalc = New Calc.VBCalc() 
Assert.AreEqual(5,MyRealCalc.Total) 

回答

0

您的实现代码需要放在using语句中,否则就是调用真正的Calc.VbCalc方法。将您的代码更改为:

Using ShimsContext.Create() 
    Calc.Fakes.ShimVBCalc.Constructor = Function() New Calc.Fakes.ShimVBCalc() With { 
     .TotalGet = Function() 
     Return 5.0 
     End Function} 
MyRealCalc = New Calc.VBCalc() 
Assert.AreEqual(5,MyRealCalc.Total) 
End Using 
相关问题