首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rhino Mock partial mock中的Stub setter

Rhino Mock partial mock中的Stub setter
EN

Stack Overflow用户
提问于 2013-05-17 00:08:03
回答 1查看 1.3K关注 0票数 3

我正在按照这个question中被接受的答案,但我得到了一个NullReferenceException

我需要的是有一个部分模拟存根,一个属性(包括getter和setter),它的行为就像一个存根(一个简单的自动属性)。目前,我可以截断getter,但不能截断setter。

这个是可能的吗?

编辑:这是一个简单的例子,我希望它能帮助解释我的问题。

代码语言:javascript
复制
public class SomeClass
{
 public virtual string SomeProperty
 {
  get{ return SomeMethodDependingOnDBOrAspSession(); }
  set{ SomeMethodDependingOnDBOrAspSession(value); } // I want to avoid calling this setter implementation
 }
}

var partialMock = MockRepository.GeneratePartialMock<SomeClass>();
partialMock.Stub(p => p.SomeProperty); // I want SomeProperty to behave as an automatic property
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-31 22:15:14

在使用PartialMock时,您可以通过使用Rhino Mock的PropertyBehavior特性来获得自动实现的属性,如行为。根据你问题中的类,下面的nunit测试通过了我的测试。

代码语言:javascript
复制
[Test]
public void TestPartialMock()
{
  var someClass = MockRepository.GeneratePartialMock<SomeClass>();
  someClass.Stub(x => x.SomeProperty).PropertyBehavior();

  string val = "yo!";
  Assert.DoesNotThrow(() => someClass.SomeProperty = val);
  Assert.AreEqual(val, someClass.SomeProperty);
}

如果不需要PartialMock,可以使用默认具有属性行为的Stub。您只需将测试的前两行替换为:

代码语言:javascript
复制
var someClass = MockRepository.GenerateStub<SomeClass>();
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16592440

复制
相关文章

相似问题

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