C# 模拟一个或多个模拟对象的列表
我有一个使用对象列表的类。你会怎么嘲笑这份名单?为什么?是否模拟列表,以便在调用列表方法时返回模拟对象。还是使用模拟对象创建列表的实例 下面是一个粗略的代码示例。因此,如果我模拟列表,我需要知道如何使用列表,并在列表的方法上设置正确的返回/期望。或 对于模拟对象的列表,我只需要使用模拟对象设置列表,并断言每个模拟订阅者都已“使用” 我测试每个订户是否被调用,在我看来后一种方法是正确的,您的看法是什么C# 模拟一个或多个模拟对象的列表,c#,java,list,unit-testing,mocking,C#,Java,List,Unit Testing,Mocking,我有一个使用对象列表的类。你会怎么嘲笑这份名单?为什么?是否模拟列表,以便在调用列表方法时返回模拟对象。还是使用模拟对象创建列表的实例 下面是一个粗略的代码示例。因此,如果我模拟列表,我需要知道如何使用列表,并在列表的方法上设置正确的返回/期望。或 对于模拟对象的列表,我只需要使用模拟对象设置列表,并断言每个模拟订阅者都已“使用” 我测试每个订户是否被调用,在我看来后一种方法是正确的,您的看法是什么 public class Publisher { private List<Su
public class Publisher {
private List<Subscriber> subscribers;
public void publish() {
// loop through subscribers
}
}
公共类发布程序{
私人名单订户;
公开发布(){
//循环浏览用户
}
}
对我来说,模仿列表
听起来像是跳进了鲨鱼。我想说返回一个mock的列表就足够了
您没有测试列表
实现-您知道这是可行的。使用它。模仿列表中的模仿,对我来说,听起来像是跳进了鲨鱼。我想说返回一个mock的列表就足够了
您没有测试列表
实现-您知道这是可行的。使用它。如果您想:
指示您控制的类执行预定义行为(例如,返回已知值、引发预定义异常)
测试一个类以确保它执行了预期的行为
在您的情况下,您当然不希望定义List来执行任何特殊行为,也不希望测试List类以按预期执行。因此,您不应该创建列表的模拟
你的测试对象是订阅者。因此,您是对的,您需要订阅服务器的模拟列表。当您想要:
指示您控制的类执行预定义行为(例如,返回已知值、引发预定义异常)
测试一个类以确保它执行了预期的行为
在您的情况下,您当然不希望定义List来执行任何特殊行为,也不希望测试List类以按预期执行。因此,您不应该创建列表的模拟
你的测试对象是订阅者。所以你是对的,你需要一份用户模拟列表。我同意,我遇到的博客和指南在给出模拟示例时似乎使用了列表,这似乎非常糟糕。我不理解你的评论。返回列表没有什么错。我不会嘲笑这个列表,因为这不是我正在测试的。我知道ArrayList很好用。我可能希望返回一个包含模拟对象的列表实现。该列表的用户不需要知道或关心他们是模拟。我的意思是,当他们展示如何使用模拟框架时,他们使用列表作为模拟对象作为示例。我同意,我遇到的博客和指南在给出模拟示例时似乎使用列表,这似乎非常糟糕。我不理解你的评论。返回列表没有什么错。我不会嘲笑这个列表,因为这不是我正在测试的。我知道ArrayList很好用。我可能希望返回一个包含模拟对象的列表实现。该列表的用户不需要知道或关心它们是mock。我的意思是,当他们展示如何使用mock框架时,他们使用List作为模拟对象作为示例。