`
taowen
  • 浏览: 190826 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

我的酒窝.NET

阅读更多
ajoo同学的酒窝有.NET版本啦!

项目主页:
http://dotnet.dimple.googlepages.com/home

存在意义:
快速制作测试用的stub。手工继承,mock框架之外的第三种选择。

简单使用:
public class StubDbCommand
        {
            public object ExecuteScalar()
            {
                return "Hello";
            }
            public static DbCommand New()
            {
                return NDimple.Implement<DbCommand>(new StubDbCommand());
            }
        }
Console.WriteLine(StubDbCommand.New().ExecuteScalar());


Output:
引用

Hello


独家特性:
public abstract class AbstractClass
        {
            protected abstract string AbstractMethod1();
            protected abstract string AbstractMethod2();
            public string InvokeAbstractMethod1()
            {
                return AbstractMethod1();
            }
        }

public abstract class StubAbstractClass : AbstractClass
        {
            protected override string AbstractMethod1()
            {
                return "Hello";
            }
            public static AbstractClass New()
            {
                return NDimple.Implement<AbstractClass>(typeof (StubAbstractClass));
            }
        }

Console.WriteLine(StubAbstractClass.New().InvokeAbstractMethod1());


Output:
引用

Hello
分享到:
评论
2 楼 sorphi 2007-05-09  
>>是不是也象dimple一样支持自动delegate

太牛鼻了,dimple,马上纳入工具箱中

以前见过酒窝贴,太高深,不如这些sample(http://dimple.codehaus.org/Dimple+Tips)诱惑人啊
1 楼 ajoo 2007-05-05  
taowen 写道
ajoo同学的酒窝有.NET版本啦!

项目主页:
http://dotnet.dimple.googlepages.com/home

存在意义:
快速制作测试用的stub。手工继承,mock框架之外的第三种选择。

简单使用:
public class StubDbCommand
        {
            public object ExecuteScalar()
            {
                return "Hello";
            }
            public static DbCommand New()
            {
                return NDimple.Implement<DbCommand>(new StubDbCommand());
            }
        }
Console.WriteLine(StubDbCommand.New().ExecuteScalar());


Output:
引用

Hello


独家特性:
public abstract class AbstractClass
        {
            protected abstract string AbstractMethod1();
            protected abstract string AbstractMethod2();
            public string InvokeAbstractMethod1()
            {
                return AbstractMethod1();
            }
        }

public abstract class StubAbstractClass : AbstractClass
        {
            protected override string AbstractMethod1()
            {
                return "Hello";
            }
            public static AbstractClass New()
            {
                return NDimple.Implement<AbstractClass>(typeof (StubAbstractClass));
            }
        }

Console.WriteLine(StubAbstractClass.New().InvokeAbstractMethod1());


Output:
引用

Hello


靠。dimple太好用了。价钱便宜量又足。我一直用它。

呵呵。对了,ndimple除了stub,是不是也象dimple一样支持自动delegate?就是如果没有explicitly implement的方法直接delegate到一个default instance上去?
我目前主要把dimple用在production code里面来做Connection, PreparedStatement, SqlMapClient等等第三方接口的decorator, proxy之类的。
比如:http://dimple.codehaus.org/Integrate+IBatis+With+Legacy+System

相关推荐

Global site tag (gtag.js) - Google Analytics