2010-02-25 76 views
2

如果有下面的類測試呼叫使用犀牛基類嘲笑

public abstract class MyBaseClass : BaseClass 
{ 
    public override string Test(string value) 
    { 
     return value == null ? value : base.Test(value); 
    } 
} 

使用局部嘲笑我實際上可以測試試驗碼(具有值= NULL)的第一部分。有沒有可能測試這樣一個事實,即在值!= null時實際完成對基類的調用?

+0

你能展示你的模擬用法嗎? – 2010-02-25 14:15:42

+0

var mock = MockRepository.GeneratePartialMock (); //某種期望 mock.Test(「not_empty」); mock.VerifyAllExpectations(); – Jelle 2010-02-25 14:51:11

回答

6

不,你不能這樣做,因爲你的測試方法已經重寫基方法,並沒有普通dymaic模擬可以攔截的base.TestMyBaseClass.Test的調用。

Here's a more detailed explanation,雖然它涉及Moq。然而,Rhino Mocks也適用相同的論點,並且here's why

0

爲什麼你甚至需要對這段代碼進行行爲測試,讓你的生活變得困難?這看起來很適合基於狀態的測試:您提供輸入(值)並對方法的輸出進行斷言。很多時候保持簡單可以節省一天的時間。