无法为CollectionAssert获取正确的语法

时间:2011-06-09 09:37:58

标签: asp.net-mvc

我正在通过以下链接自学TDD; http://msdn.microsoft.com/en-us/library/gg416511%28VS.98%29.aspx

我发现有些代码是错误的,这是令人失望的,因为主题是关于测试,但我不应该抱怨太多,因为从错误中学习是好的。

但是我从未使用过; CollectionAssert在下面的代码之前没有编译;

    [TestMethod]
    public void Index_Get_RetrievesAllContactsFromRepository()
    {
        // Arrange
        Contact contact1 = GetContact(1, "Orlando", "Gee");
        Contact contact2 = GetContact(2, "Keith", "Harris");
        InMemoryContactRepository repository = new InMemoryContactRepository();
        repository.Add(contact1);
        repository.Add(contact2);
        var controller = GetHomeController(repository);

        // Act
        var result = controller.Index();

        // Assert
        var model = (ICollection<Contact>)result.ViewData.Model;
        CollectionAssert.Contains(model, contact1);
        CollectionAssert.Contains(model, contact2);
    } 

错误消息是 错误4参数1:无法从'System.Collections.Generic.ICollection'转换为'System.Collections.ICollection'C:\ MVC3 \ Training \ MvcContracts \ MvcContracts.Tests \ Controllers \ HomeControllerTest.cs 94 39 MvcContracts.Tests

我已经尝试将演员从ICollection更改为IEnumerable,但这有效。

1 个答案:

答案 0 :(得分:0)

尝试

CollectionAssert.Contains(model.ToList(), contact1);