如何用IEnumerable模拟一个类

时间:2014-09-12 01:06:59

标签: c# unit-testing visual-studio-2012 moq

我正在使用Moq在C#中进行单元测试,并希望在下面的类中添加一些假数据。

 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"},

            };

1 个答案:

答案 0 :(得分:3)

嗯,你根本就不是“假装”它 - 你只是使用数组作为实现。这样做是没有错的 - 我个人喜欢在测试中使用真实代码,只要:

  • 你对你所依赖的其他代码(在这种情况下是数组)有信心,因为它是从一个值得信赖的来源(在这种情况下是BCL)提供的,或者你有测试
  • 您不需要执行交互测试 - 例如,如果您想要检查您是否只对集合进行一次迭代,那么数组将无法帮助您执行此操作
  • 真实代码不会减慢测试速度(例如,通过建立网络连接,需要数据库等)。数组不是问题。