首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何模拟subsonic SimpleRepository的Add方法

如何模拟subsonic SimpleRepository的Add方法
EN

Stack Overflow用户
提问于 2009-11-23 00:21:36
回答 2查看 235关注 0票数 2

我正在尝试用Rihino模拟来模拟亚音速SimpleRepository的Add方法,我正在使用IRepository接口,但我对模拟是新手,不知道如何从那里开始,这能做到吗?谢谢你的帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-11-23 00:41:38

这取决于您想要测试什么。您是否关心Add()方法是否被调用,或者您是否只想设置一个可能被调用或可能不被调用的录制响应?

如果您期待来电:-

代码语言:javascript
复制
var mocks = new MockRepository();
var repo = mocks.StrictMock<IRepository>():

var myObj = CreateSampleObject(); 

using(mocks.Record())
{
    Expect.Call(repo.Add(myObj)).Return(myObj);
}

using(mocks.Playback())
{
    var target = CreateTarget(repo);
    target.DoSomething(myObj);
}

如果你不关心它是否被调用,那么使用SetUpResult代替Expect,例如

代码语言:javascript
复制
SetUpResult.For(rep.Add(myObj)).Return(myObj);
票数 1
EN

Stack Overflow用户

发布于 2009-11-23 04:10:11

AdamRalph是正确的,但我更喜欢Rhino Mock的AAA语法:

代码语言:javascript
复制
// arrange
var repo = MockRepository.GenerateStub<IRepository>();
var myObject = CreateSampleObject();
repo.Stub(r => r.Add(myObj)).Return(myObj);

// act (this assumes that the call to "SomeMethod" on "SomeClass"
// returns the result of the IRepository.Add).
var someClass = new SomeClass(repo);
var result = someClass.SomeMethod();

// assert
Assert.AreSame(myObject, result);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1779168

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档