2011-08-12 59 views
0

嗨說我有這樣一些代碼:單元測試起訂量不通過方法時,虛擬

public class Class1 
    { 
     public int MyMethod() 
     { 
      return MyOtherMethod(); 
     } 

     public virtual int MyOtherMethod() 
     { 
      return 1; 
     } 
    } 

好吧,這並沒有做太多的相關性,但是這僅僅是一個簡單的例子。

我然後創建一個新的測試:

[TestMethod] 
     public void TestMethod1() 
     { 
      var t = new Mock<Class1>(); 

      var w = t.Object.MyMethod(); 
     } 

可能有人請告訴我爲什麼代碼通過調用方法MyOtherMethod運行時,它沒有指定爲虛擬,但是當你把它虛擬測試代碼拒絕去通過那種方法?

回答

0

,您應該設置在調用的MyMethod之前的虛方法:

t.Setup(c => c.MyOtherMethod()).Return(1); 
+0

謝謝,我只是有點困惑。 – AnonyMouse