我使用的是Moq 4.5.3。并决定将Moq Nuget软件包更新到最新版本,即4.5.8。
突然,我的很多测试开始失败。问题是在可选参数上使用It.IsAny<decimal>
时.Bellow是一个简单,愚蠢的测试来证明它:
public interface IFoo { bool Method(decimal decimalArg = 0m); }
public class Some
{
public int SomeMethod(IFoo foo) => foo.Method(10m) ? 1 : 0;
}
[TestFixture]
public class SomeTests
{
[Test]
public void SampleTest()
{
var fooMock = new Mock<IFoo>();
fooMock.Setup(m => m.Method(It.IsAny<decimal>())).Returns(true);
var sut = new Some();
var actual = sut.SomeMethod(fooMock.Object);
Assert.That(actual, Is.EqualTo(1));
}
}
我正在使用.Net 4.6.1,nUnit 3.2.1。
返回的异常是:“system.decimal不是支持的常量类型”。