如何用IEnumerable模拟类

本文关键字:模拟类 IEnumerable 何用 | 更新日期: 2023-09-27 18:21:32

我在C#中使用Moq进行单元测试,并希望在下面的类中放入一些伪数据。

 public class UserResponse
 {
       public IEnumerable<usertab> userlist{get;set;}
       public string Name {get;set;}
       public string state {get;set;}
       public string country {get;set}
 }
  public class usertab
  {
    public string tname {get;set;}
    public string fname {get;set;}
   }

如果下面的代码是正确的,请纠正我伪造一个带有IEnumerable 的类

            var userdata = new usertab[]{
               new usertab{tName="Employee",fName="abc"},
               new usertab{tName="Employee",fName="xyz"},
            };

如何用IEnumerable模拟类

好吧,你根本不是在"伪造"它——你只是在使用一个数组作为实现。这样做没有错——就我个人而言,我喜欢在测试中使用真实代码,只要:

  • 您对所依赖的其他代码(本例中为数组)有信心,这可能是因为它是由可靠的来源(本例为BCL)提供的,也可能是因为您有测试
  • 您不需要执行交互测试-例如,如果您想检查是否只对集合进行一次迭代,数组将无法帮助您做到这一点
  • 真正的代码不会减慢测试速度(例如,通过建立网络连接、需要数据库等)。数组没有问题