如何用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"},
};
好吧,你根本不是在"伪造"它——你只是在使用一个数组作为实现。这样做没有错——就我个人而言,我喜欢在测试中使用真实代码,只要:
- 您对所依赖的其他代码(本例中为数组)有信心,这可能是因为它是由可靠的来源(本例为BCL)提供的,也可能是因为您有测试
- 您不需要执行交互测试-例如,如果您想检查是否只对集合进行一次迭代,数组将无法帮助您做到这一点
- 真正的代码不会减慢测试速度(例如,通过建立网络连接、需要数据库等)。数组没有问题