繁体   English   中英

C#单元测试

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM