C# 如何用IEnumerable模拟类
我在C#中使用Moq进行单元测试,并希望在下面的类中放置一些虚假数据C# 如何用IEnumerable模拟类,c#,unit-testing,visual-studio-2012,moq,C#,Unit Testing,Visual Studio 2012,Moq,我在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} } pub
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;}
}
您根本不是在“伪造”它-您只是使用一个数组作为实现。这样做没有什么错-我个人喜欢在测试中使用真实代码,只要:
- 您对所依赖的其他代码(在本例中为数组)有信心,因为它是由可靠的源代码(在本例中为BCL)提供的,或者您有测试
- 您不需要执行交互测试——例如,如果您想检查是否只对集合迭代一次,那么数组将不会帮助您这样做
- 真正的代码不会减慢测试速度(例如,通过建立网络连接、需要数据库等)。阵列没有问题
- 您对所依赖的其他代码(在本例中为数组)有信心,因为它是由可靠的源代码(在本例中为BCL)提供的,或者您有测试
- 您不需要执行交互测试——例如,如果您想检查是否只对集合迭代一次,那么数组将不会帮助您这样做
- 真正的代码不会减慢测试速度(例如,通过建立网络连接、需要数据库等)。阵列没有问题
- 您对所依赖的其他代码(在本例中为数组)有信心,因为它是由可靠的源代码(在本例中为BCL)提供的,或者您有测试
- 您不需要执行交互测试——例如,如果您想检查是否只对集合迭代一次,那么数组将不会帮助您这样做
- 真正的代码不会减慢测试速度(例如,通过建立网络连接、需要数据库等)。阵列没有问题
- 您对所依赖的其他代码(在本例中为数组)有信心,因为它是由可靠的源代码(在本例中为BCL)提供的,或者您有测试
- 您不需要执行交互测试——例如,如果您想检查是否只对集合迭代一次,那么数组将不会帮助您这样做
- 真正的代码不会减慢测试速度(例如,通过建立网络连接、需要数据库等)。阵列没有问题
var userdata = new usertab[]{
new usertab{tName="Employee",fName="abc"},
new usertab{tName="Employee",fName="xyz"},
};