传递列表<;SomeObject>;参数到NUnit测试

本文关键字:参数 NUnit 测试 gt SomeObject lt 列表 | 更新日期: 2023-09-27 18:00:08

我正在进行一个NUnit测试,该测试需要能够接受List作为参数,我想知道如何将该列表作为参数传递?

我可以将每个用户单独传递给单元测试,如下所示:

[Test, TestCaseSource("GetUsers")]        
public void MyExample_Test(User user)
{   
    Asset.Pass();
}
private static List<User>GetUsers()
{
    List<User>users=new List<User>();
    users.Add(new User());
    users.Add(new User());
    users.Add(new User());
    users.Add(new User());
    return users;
}

但我需要整体通过List<User>

传递列表<;SomeObject>;参数到NUnit测试

TestCaseSource的目的是返回一个集合,其中集合中的每个对象都会根据您的测试方法创建一个新的Test。您想要传入一个集合,因此需要将该集合包装在一个集合中。关于递归:)

你想要这样的东西

[Test, TestCaseSource("GetUserLists")]        
public void MyExample_Test(IList<User> users)
{   
    Asset.Pass();
}
private static IEnumerbale<List<User>> GetUserLists()
{
    IList<User> users = new List<User>();
    users.Add(new User());
    users.Add(new User());
    users.Add(new User());
    users.Add(new User());
    return new [] { users };
}

通常,您需要将多个集合添加到要返回的集合中,否则您不需要TestCaseSource,只需在测试方法中构造集合即可。