mock and stub -- ver 0.1

1 useful links:

Mocks Aren't Stubs

Mock Objects and Stubs: The Bottle Brush of TDD

The Difference between Mocks and Stubs

不要把Mock当作你的设计利器

 

 

2 self notes:

stub将返回的数据硬编码,以使对输入返回期望输出
mock相对较新,用于记录和验证两个类之间的交互。

动态mock:通过mock引擎实现,将被测试类作为参数传入。记录了调用状态。
静态mock,通过成员变量手工记录调用情况或内部状态。

典型的使用mock的方法:
 

            [Test]
            public void CloseViewWhenViewIsNotDirty()
            {
                  // 1.) Create the mock objects
                  IMock msgBoxMock = new DynamicMock(typeof(IMessageBoxCreator));
                  IMock viewMock = new DynamicMock(typeof(IView));
 
                  // 2.) Define the expected interaction
                  msgBoxMock.ExpectNoCall("AskYesNoQuestion", typeof(string), typeof(string));
                  viewMock.ExpectAndReturn("IsDirty", false);
                  viewMock.Expect("Close");
 
                  // 3.) Create the presenter class with the mock objects
                  Presenter presenter = new Presenter(
                        (IView) viewMock.MockInstance,
                        (IMessageBoxCreator) msgBoxMock.MockInstance);
 
                  // 4.) Perform the unit of work
                  presenter.Close();
 
                  // 5.) Verify the interaction
                  msgBoxMock.Verify();
                  viewMock.Verify();
            }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值