假設我有以下模型:
public class A
{
public decimal? Property { get; set; }
}
我想測驗一個方法,取決于那個“屬性”,將值作為引數傳遞。我認為這會起作用,但我并不感到驚訝,因為 InlineData 屬性接受物件陣列。
[Theory]
[InlineData(-10.0)]
[InlineData(0)]
[InlineData(null)]
public void Test(decimal? property)
{
var a = new A();
a.Property = property;
// Unit test logic
}
運行測驗時,它通過 null 值,但數值拋出“ ArgumentException ”例外:
System.ArgumentException:“System.Double”型別的物件無法轉換為“System.Nullable`1[System.Decimal]”型別。
我的問題是:在這種情況下可以使用 [Theory] ??和 [InlineData] 嗎?或者我應該為每個單獨測驗?
uj5u.com熱心網友回復:
我發現了這個問題
第二個答案是一種似乎可行的解決方法,將簽名更改為接收 adouble?然后將其轉換為decimal?
[Theory]
[InlineData(-10.0)]
[InlineData(0)]
[InlineData(null)]
public void Test(double? property)
{
var a = new A();
a.Property = (decimal?) property;
// Unit test logic
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/483189.html
上一篇:為模型實體設定值-ArgumentOutOfRangeException
下一篇:禁止方法的所有警告
