繁体   English   中英

模拟列表或模拟对象列表

[英]Mocking a list or List of Mock Objects

我有一个使用对象列表的类。 您将如何模拟列表?为什么? 您是否在模拟列表,以便在调用列表方法时它返回模拟对象。 还是使用模拟对象创建列表的实例?

下面是一个简单的代码示例。 因此,如果我模拟列表,则需要知道如何使用列表,并在列表的方法上设置正确的返回值/期望值。 或使用模拟对象列表,我只需要使用模拟对象设置列表,并断言每个模拟订阅服务器均已“使用”。

我测试每个用户都被称为,在我看来后一种方法是正确的,您的看法是什么?

public class Publisher {

    private List<Subscriber> subscribers;

    public void publish() {
        // loop through subscribers
    }

}

模拟一个模拟List听起来像是在跳鲨鱼。 我想说,返回一个模拟List就足够了。

您没有测试List实现-您知道这是可行的。 用它。

当您要执行以下操作时,需要提供模拟:

  1. 指示您控制下的类执行预定义的行为(例如,返回已知值,引发预定义的异常)。
  2. 测试一个类,以确保它执行了预期的行为。

在您的情况下,您当然不想定义List来执行任何特殊行为,也不想测试List类来按预期执行。 因此,您不应创建列表的模拟。

您的测试主题是订户。 因此,您说对了,您需要一个订阅者模拟列表。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM