Xiao Peng

My personal blog moves to xiaopeng.me , blogs about design patterns will be synced to here.
肖鹏,ThoughtWorks资深咨询师,目前关注于架构模式、敏捷软件开发等领域,并致力于软件开发最佳实践的推广和应用。
多次为国内大型企业敏捷组织转型提供咨询和培训服务,在大型团队持续集成方面具有丰富的经验。
  博客园  :: 首页  :: 联系 :: 订阅 订阅  :: 管理

Rhino Mocks To The Rescure

Posted on 2006-11-23 09:17  勇敢的鸵鸟  阅读(372)  评论(0编辑  收藏  举报
http://developernotes.com/archive/2006/06/06/Rhino...

NMock不支持mocking classes. Rhino Mocks allows you to create a PartialMock of a class with parameterized constructor arguments.

Sample code pieces:

public abstract class DomainObject
{
    public virtual Guid GetUser()
    {
        Guid g = GetId();
        if (g == Guid.Empty)
        {
            g = Guid.NewGuid();
        }
    return g;
    }   
    public abstract Guid GetId();
}


    [Test()]
public void PatialMock()
    {
        MockRepository mocks = new MockRepository();
DomainObject anObject =
            (DomainObject)mocks.PartialMock(typeof(DomainObject));
Guid g = Guid.NewGuid();
Expect.Call(anObject.GetId()).Return(g);
mocks.ReplayAll();
Assert.AreEqual(g, anObject.GetUser());
mocks.VerifyAll();
}