论坛首页 编程语言技术论坛

我的酒窝.NET

浏览 4199 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-04-30  
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
   发表时间: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
0 请登录后投票
   发表时间:2007-05-09  
>>是不是也象dimple一样支持自动delegate

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

以前见过酒窝贴,太高深,不如这些sample(http://dimple.codehaus.org/Dimple+Tips)诱惑人啊
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics