最小起订量修改在调用 void 方法时受保护
我想使用 moq 一个 void 方法,并在调用时将值设置为受保护的属性。
public class MyClass{ public Guid Id {get; protected set; } }
public interface IMyRespository { public void Save(MyClass myClass); }
比如:
var moq = new Mock<IMyRespository>();
var my = new MyClass();
moq.Setup(x=>x.Save(my));
我想设置保存时的 Id 不再是 Guid.Empty。 Save 是一个 void 方法,因此没有返回,并且 using:
.Callback(() => my = new MyClassImpl(new Guid("..")))
不起作用。
I want to use moq a void method and set a value to a protected property when is called.
public class MyClass{ public Guid Id {get; protected set; } }
public interface IMyRespository { public void Save(MyClass myClass); }
Something like:
var moq = new Mock<IMyRespository>();
var my = new MyClass();
moq.Setup(x=>x.Save(my));
I want to setup that Id on save is no more a Guid.Empty.
Save is a void method so no returns, and using:
.Callback(() => my = new MyClassImpl(new Guid("..")))
is not working..
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
首先,你必须正确设定期望。我认为你真正想要的是设置模拟,以便它接受
MyClass
的任何实例:然后,你设置一个回调,如下所示:
将它们放在一起将让你构造一个接受的模拟
MyClass
并将MyClass
实例保存到my
变量中:First, you have to set up the expectation properly. I think what you actually want is to set up the mock so that it accepts any instance of
MyClass
:Then, you set up a callback like so:
Putting it all together will let you construct a mock that accepts
MyClass
and saves theMyClass
instance tomy
variable: