Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 调用方法时使用Moq指定属性值_C#_.net_Unit Testing_Moq - Fatal编程技术网

C# 调用方法时使用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设置预期的属

我试图在调用方法时使用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));