首页 > 解决方案 > 在设置和验证中具有相同参数的起订量

问题描述

我经常在Setup和中编写相同的参数表达式Verify。有没有办法引用它们?


我写的:

var mock = new Moq<IFoo>();
mock.Setup(m => m.MyMethod(It.Is.Any<string>());
...
mock.Verify(m => m.MyMethod(It.Is.Any<string>()), Times.Once);

然后我认为应该/可以将它作为Setup和共享相同的参数移动到一个公共引用中,如下所示:Verify

var MyMethodCall = {WHAT SHOUD BE HERE?};
var mock = new Moq<IFoo>();
mock.Setup(m => MyMethodCall);
...
mock.Verify(m => MyMethodCall, Times.Once);

标签: c#moq

解决方案


您可以创建一个包含表达式的变量,以便您可以重用它:

Expression<Action<IFoo>> expression = x => x.MyMethod(It.Is.Any<string>());

var mock = new Moq<IFoo>();
mock.Setup(expression);
...
mock.Verify(expression, Times.Once);

推荐阅读