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

Jon*_*Jon 12 .net c# unit-testing moq

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

有点像:

Mock<ITimer> mock = new Mock<ITimer>();
mock.Setup(x=>x.Start()).AssignProperty(y=>y.Enabled = true);
Run Code Online (Sandbox Code Playgroud)

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

Mar*_*ill 16

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

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

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

  • 谢谢,尽管我使用了mock.Setup(x => x.Start()).回调(()=> mock.Setup(x => x.Enabled).Returns(true)); (2认同)