我如何单元测试返回IEnumerable的方法

时间:2017-06-06 19:44:58

标签: c# unit-testing

请参阅以下代码:

public IEnumerable<int> Numbers()
{
    yield return 1;
    yield return 2;
    yield return 3;
    yield return 4;
    yield return 5;
}

以及下面的单元测试:

public void GetNumbers()
{
    ClassToTest c = new ClassToTest();
    var expected = 
    var actual = c.Numbers();
    CollectionAssert.AreEqual(expected, actual);
}

我需要帮助填充开头的行:var expected

我是否必须转换为列表以使断言起作用。请注意,订单很重要,即两个集合必须具有以下顺序的数字:1,2,3,4,5。

请注意上面的代码不是真正的测试。我用它来解释我的问题。

1 个答案:

答案 0 :(得分:0)

尝试:

ClassToTest c = new ClassToTest();

var expected = int[] { 1, 2, 3, 4, 5 };
var actual = c.Numbers().ToArray();

CollectionAssert.AreEqual(expected, actual);