![](/img/trans.png)
[英]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.