C# 调用方法时使用Moq指定属性值
我试图在调用方法时使用Moq来分配属性 大致如下:C# 调用方法时使用Moq指定属性值,c#,.net,unit-testing,moq,C#,.net,Unit Testing,Moq,我试图在调用方法时使用Moq来分配属性 大致如下: Mock<ITimer> mock = new Mock<ITimer>(); mock.Setup(x=>x.Start()).AssignProperty(y=>y.Enabled = true); Mock Mock=new Mock(); mock.Setup(x=>x.Start()).AssignProperty(y=>y.Enabled=true); 调用方法时是否可以使用Moq设置预期的属
Mock<ITimer> mock = new Mock<ITimer>();
mock.Setup(x=>x.Start()).AssignProperty(y=>y.Enabled = true);
Mock Mock=new Mock();
mock.Setup(x=>x.Start()).AssignProperty(y=>y.Enabled=true);
调用方法时是否可以使用Moq设置预期的属性值我假设调用方法时您实际上是在模拟上执行一个新的Setup()?如果是这样的话,您应该可以通过回调来完成,如下所示:
Mock<ITimer> mock = new Mock<ITimer>();
mock.Setup(x=>x.Start()).Callback(() => mock.SetupGet(y => y.Enabled).Returns(true));
Mock Mock=new Mock();
mock.Setup(x=>x.Start()).Callback(()=>mock.SetupGet(y=>y.Enabled)。返回(true));
它很难看,但它应该能起作用。它当然应该是。我知道犀牛会这样做,所以如果莫克不这样做,那将是令人惊讶的。我相信这只是一个配置方法混淆或其他一些使用问题。但是,我不知道Moq,所以我会让更有知识的人来回答这个问题。尽管我使用了mock.Setup(x=>x.Start()).Callback(()=>mock.Setup(x=>x.Enabled)。返回(true));