2010-02-25 36 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

为什么你甚至需要对这段代码进行行为测试,让你的生活变得困难?这看起来很适合基于状态的测试:您提供输入(值)并对方法的输出进行断言。很多时候保持简单可以节省一天的时间。