我正在实现以下测试:
[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#新手
发布于 2012-07-23 17:51:19
听起来你只是想:
Assert.AreEqual(2, model.Count());但听起来你最好使用:
CollectionAssert.AreEquivalent(new[] { Contribution1, Contribution2 },
model.ToList());..。可以替换所有这三行代码。
在这两种情况下,请注意期望值应该是第一个参数,而实际值应该是第二个参数。
发布于 2012-07-23 17:50:04
Assert.AreEqual(model.ToList().Count, 2);https://stackoverflow.com/questions/11610017
复制相似问题