Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 模拟一个或多个模拟对象的列表_C#_Java_List_Unit Testing_Mocking - Fatal编程技术网

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作为模拟对象作为示例。