[英]Moq converts It.IsAny<Exception> to It.IsAny<string> in expectation
[英]Moq >= 4.5.7 exposes Exception on It.IsAny<decimal>()
我使用的是Moq 4.5.3。 并决定将Moq Nuget软件包更新到最新版本,即4.5.8。
突然间,我的很多测试开始失败。 问题是在可选参数上使用It.IsAny<decimal>
时。
贝娄是一个简单,愚蠢的测试来证明它:
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不是受支持的常量类型”。
看到这个 Castle.Core讨论。 删除默认值将解决此特定测试中的问题,但可能不会在所有测试中解决。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.