当前位置: 首页 > 面试题库 >

模拟IMAP或POP服务器进行单元测试的最简单方法是什么?[重复]

江佐
2023-03-14
问题内容

我想对一个Java应用程序进行单元测试,该Java应用程序从电子邮件收件箱中提取邮件,当前,我在易于设置的公司真实邮件服务器上的真实邮箱上运行单元测试,但有以下缺点:

  • 在运行测试之前,您必须发送实际的电子邮件
  • 添加更多的测试案例可能很困难,例如,因为您可能想针对不同的安全策略进行测试
  • 测试取决于与邮件服务器的有效网络连接以及现有的邮件帐户,该帐户将开发和系统管理结合在一起对我而言毫无意义。

我想在本地端口上启动IMAP服务器,该服务器根据与测试类一起存储在文件中的测试数据来伪造收件箱。我可以想到以下方法:

  • 运行套接字服务器并实现基本的IMAP子集
  • 使用用于构建电子邮件服务器的更高级别的库
  • 使用可以嵌入测试中的现有电子邮件服务器实施

我想避免使用第一种方法,它看起来很简单,但是从类似的经验中我猜想,还有很长的路要走。只需考虑要测试安全连接等即可。类似地,第二个选项似乎需要很多工作,但是我还没有找到可以用于第三个选项的邮件服务器。

如果重要的话,我会在构建过程中使用Maven和TestNG。


问题答案:

Greenmail可能有用。

GreenMail是用于测试目的的电子邮件服务器的开放源代码,直观且易于使用的测试套件。通过SSL套接字支持支持SMTP,POP3,IMAP。



 类似资料:
  • 我想对一个组件的功能进行单元测试。因此,我需要一个模拟服务(根据角度测试指南)。 这里是我的测试床: 那么,嘲笑服务价值的正确方法是什么呢? 弗兰克

  • 问题内容: 我正在尝试为一些依赖WifiManager和返回的ScanResults的类实现一些单元测试。我想做的是能够控制我收到的ScanResults,以测试各种不同的条件。 不幸的是,对我来说,成功模拟WifiManager非常困难(尽管我想我可以在MockWifiManager中传递其构造函数null引用)。这只是我的第一个问题,因为一旦我有一个MockWifiManager可以玩(如果它

  • 我正在进行一个spring-boot项目,其中我有一个控制器,它调用服务方法并处理输出。 我正在使用spring MockMvc测试web层。在我的测试类中,我用Mockito.when()模拟了服务方法。但是当我调用相应的处理方法时,它不是调用被模仿的服务方法,而是返回一个空响应。 控制器 测试类 返回的响应是 请帮我解决这个问题。提前谢谢!

  • null 那么,如果在实际的单元测试运行之前,准备所有的事情所花费的时间是原来的两倍,那么这有什么区别呢?为什么这是推荐的方式呢?

  • 问题内容: 如何简单地从本地Python(3.0)脚本SSH到远程服务器,提供登录名/密码,执行命令并将输出打印到Python控制台? 我宁愿不使用任何大型外部库或在远程服务器上安装任何东西。 问题答案: 我没有尝试过,但是这个pysftp模块可能会有所帮助,而后者又使用了paramiko。我相信一切都在客户端。 有趣的命令可能是在远程计算机上执行任意命令。(该模块的功能和方法也更多地暗示了它的F

  • 我已经开始考虑在我的项目中围绕一些业务逻辑添加一些单元测试。 我想测试的第一个方法是服务层中的一个方法,它返回给定节点的子节点列表。 该方法如下所示: 我想象这样的测试方法是提供一个假树结构,然后测试提供节点是否返回正确的子节点。 ssdsContext是一个对象上下文。 我已经看到可以为提取和接口如何模拟ObjectContext或ObjectQuery 我还读到,as Entity Frame