我正在尝试使用Moq 3.x,它运行得非常好.但是,我有一个问题,我无法弄清楚如何解决.特定
public interface ITestSpec
{
bool Run(Action<string, string> onIncorrectResponse);
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试以下方法:
var passingTestSpec = new Mock<ITestSpec>();
passingTestSpec
.Setup(m => m.Run(null))
.Returns(true);
Action<string, string> fakeAction =
(expected, actual) => { throw new Exception("Should not run"); };
Assert.IsTrue(passingTestSpec.Object.Run(fakeAction));
Run Code Online (Sandbox Code Playgroud)
我的问题是对passTestSpec.Object.Run(......某些动作......)的任何调用都返回false.似乎Moq库试图将操作与我在Setup()调用中传递给Run()的参数匹配,并且失败.实际上我在Run()调用中放了什么动作并不重要......它仍然返回false.
有任何想法吗?
[编辑]我刚刚发现了一些东西; 如果我用安装线替换
.Setup(m => m.Run(fakeAction))
Run Code Online (Sandbox Code Playgroud)
测试通过.但是,我不知道将调用.Run()方法的操作,因此这不是一个解决方案.有谁知道It.IsAny等同于行动?
归档时间: |
|
查看次数: |
5391 次 |
最近记录: |