【发布时间】:2018-10-07 09:28:56
【问题描述】:
为什么下面的断言不起作用?
代码:
[Test]
public void CreateNewTemplateTest()
{
OnlineSignupModel model = new OnlineSignupModel
{
SalesRepId = 68,
PriceAdvanced = (decimal)22.33,
PriceComplete = (decimal)44.33,
PriceMvr = (decimal)6.33,
SetupFee = (decimal)2.33,
};
Assert.That(model, Has.Exactly(5).Items);
}
错误:
System.ArgumentException : The actual value must be an IEnumerable
Parameter name: actual
at NUnit.Framework.Constraints.ExactCountConstraint.ApplyTo[TActual](TActual actual)
at NUnit.Framework.Assert.That[TActual](TActual actual, IResolveConstraint expression, String message, Object[] args)
at NUnit.Framework.Assert.That[TActual](TActual actual, IResolveConstraint expression)
我试图断言对象中有 5 个属性。
【问题讨论】:
-
OnlineSignupModel是否派生自IEnumerable? -
这可能是XY problem。你到底想做什么?
-
我试图断言对象中有 5 个属性。
-
这不是
Has.Exactly的用途。为什么你还要测试是否存在 5 个属性?这是一个类:你要么定义了属性,要么没有。您似乎正在尝试测试属性是否已分配给。这仍然不是Has.Exactly的工作。 -
我理解任务的愚蠢,但它是我的老板分配给我的。
标签: c# unit-testing nunit