2012-05-17 57 views
0

我有一個單元測試,當它打擊一個真正的對象時,它可以正常工作,可以打到真正的數據存儲。類似的東西:試圖在VS2010中使用Rhino Mocks - 測試不運行

[TestMethod] 
    public void ATest() 
    { 
     var p = new Provider(); 

     var data = p.GetData(); 

     ... 

    } 

這個測試得到的所有模式下執行,獲取數據回來,確實是從它exected一切。現在,我想嘲笑使用Rhino Mocks的提供商。提供者類實現IProvider。所以我去寫這樣的:

[TestMethod] 
    public void ATest() 
    { 
     var p = MockRepository.GenerateStub<IProvider>(); 

     ... 

     var data = p.GetData(); 

     ... 

    } 

但現在當我嘗試調試此測試,它不起作用。完全一樣。我的意思是,我在這個方法的第一行(在'{'本身)放置了一個斷點,它沒有被擊中。有點奇怪...

我都是新來的犀牛嘲笑,也許我失去了一些明顯的東西?

+0

你是如何引用Rhino Mocks的? (直接圖書館參考或NuGet?) –

回答

0

您沒有爲模擬上的GetData調用定義返回值。嘗試這樣的:

p.Stub(s => s.GetData()).Return(testData); 
+0

我做過。我剛剛從代碼示例中跳過了它,因爲我試圖強調我遇到的問題:每當將Rhino Mocks的東西添加到測試方法中時,它就會停止執行。我無法弄清楚爲什麼......沒有來自編譯器的錯誤或警告。在我的解決方案中創建了新的測試項目,將代碼放在那裏 - 仍然不起作用。 – Andrei

+0

作爲一個想法,也許嘗試使用NSubstitute的模擬而不是犀牛相同的測試。兩者都使用引擎蓋下的城堡動態代理,因此它將有助於隔離它的犀牛是問題還是動態代理。 –

+0

升級到Resharper 6(從5)解決了問題:) – Andrei

相關問題