如何模拟 returns List<T> 的方法?

How to mock a method that returns List<T>?

我有以下方法:

public List<ITestKeyword> AddTests(TestEntity testEntity)
{
    var DesignSteps = new List<ITestKeyword>();
    foreach (var testCase in testEntity.TestCases)
    {
        DesignSteps.AddRange(testCase.GetTestStepKeywords());
    }
    return DesignSteps;
}

调用如下:

var listCount= _TestHelper.AddTests(testEntity).Count;

以下是我尝试模拟它的方法:

_mockTestHelper
    .Setup(s => s.AddTests(It.IsAny<TestEntity>()))
    .Returns(It.IsAny<List<ITestKeyword>>());

但是好像不行。它抛出空引用异常。我想不通。有人可以帮忙吗?

试试这个:

var testList = new List<ITestKeyword>();

_mockTestHelper
    .Setup(s => s.AddTests(It.IsAny<TestEntity>()))
    .Returns(testList);

这样您就可以随意填充列表