[英]C# Unit Testing
我正在实施以下测试:
[TestMethod]
public void Index_Get_RetrievesAllContributionsFromRepository()
{
// Arrange
Contributions Contribution1 = GetContributionNamed("Council", 2003);
Contributions Contribution2 = GetContributionNamed("Council", 2004);
InMemoryContributionRepository repository = new InMemoryContributionRepository();
repository.Add(Contribution1);
repository.Add(Contribution2);
var controller = GetHomeController(repository);
// Act
var result = controller.Index();
// Assert
var model = (IEnumerable<Contributions>)result.ViewData.Model;
CollectionAssert.Contains(model.ToList(), Contribution1);
CollectionAssert.Contains(model.ToList(), Contribution2);
CollectionAssert.xxxxxx(model.ToList().Count, Contribution1, 2);
}
上一次使用xxxxxx进行的测试正在尝试检查Contribution1
是否具有2个值。 请用哪一行代码执行该测试?
C#新手
听起来您只想要:
Assert.AreEqual(2, model.Count());
但它听起来像是你会使用更好的 :
CollectionAssert.AreEquivalent(new[] { Contribution1, Contribution2 },
model.ToList());
...这可以代替您的所有三行。
在这两种情况下,请注意, 期望值应为第一个参数,而实际值应为第二个参数。
Assert.AreEqual(model.ToList().Count, 2);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.