簡體   English   中英

Moq&gt; = 4.5.7暴露It.IsAny上的異常 <decimal> ()

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM