在clojure测试中测试邮件服务器

问题描述 投票:0回答:1

我需要在clojure项目中测试我们的邮件服务器。为此,我想我会打开一个模拟服务器并使用这个模拟服务器发送电子邮件并检查它们是否被发送。为此我找到了例如这个server

能够执行

lein test

并且每个测试都经过测试,我需要在每次测试之前运行一次SMTP服务器,最后一次运行一次。我也可以在夹具中运行服务器并在每次测试后退出。由于我正在运行大约100次测试,因此始终启动和关闭服务器没有意义。

我认为我的方法如下:

1 - 我写了一个bash脚本,启动(模拟)邮件服务器,运行lein测试,然后关闭服务器。 (这里我失去了在IDE中执行lein测试的难易程度)

2-我可以检查服务器是否已启动,如果没有则启动它。但是,在测试完成后,服务器仍将运行,这是不希望的。

解决这个问题的正确方法是什么?

我可以在clojure中订购测试,以便最后一个测试文件关闭邮件服务器吗?

testing clojure mail-server
1个回答
1
投票

一种解决方案是使用Java qazxsw poi库。它允许您在JVM中启动SMTP邮件服务器,这使得启动,停止和检查变得容易。

以下是我使用GreenMail测试的一些片段。首先创建邮件服务器:

GreenMail

根据您的测试,您可以在每次测试时启动和停止测试。或者可以让测试服务器运行整个测试套件。

查看GreeMail文档以获取更多详细信息。它支持大量场景。

© www.soinside.com 2019 - 2024. All rights reserved.