问题 调用方法时使用Moq分配属性值


我试图在调用方法时使用Moq分配属性。

有点像:

Mock<ITimer> mock = new Mock<ITimer>();
mock.Setup(x=>x.Start()).AssignProperty(y=>y.Enabled = true);

调用方法时是否可以使用Moq设置期望的属性值


13048
2018-04-10 14:32


起源

当然应该是。我知道Rhino会这样做,所以如果Moq没有,那就太令人惊讶了。我有信心这只是一个配置方法混淆或其他一些使用问题。但是,我不知道Moq,所以我会让更多知识渊博的人真正回答这个问题。 - KeithS


答案:


我假设你在调用方法时试图在Mock上实际执行一个新的Setup()?如果是这样,您应该可以使用回调来执行此操作,如下所示:

Mock<ITimer> mock = new Mock<ITimer>();
mock.Setup(x=>x.Start()).Callback(() => mock.SetupGet(y => y.Enabled).Returns(true));

这很难看,但它应该可以解决问题。


14
2018-04-10 14:43



谢谢,尽管我使用了mock.Setup(x => x.Start())。回调(()=> mock.Setup(x => x.Enabled).Returns(true)); - Jon