【问题标题】:mail-listener2 - How to prevent function from reading wrong emails?mail-listener2 - 如何防止函数读取错误的电子邮件?
【发布时间】:2018-08-17 01:46:07
【问题描述】:

在我的 E2E 测试中,我使用 mail-listener2 来检索电子邮件。它工作正常,除了一个让我发疯并且无法解决的问题......我一直在搜索并找到有关此库/包的不同主题和问题,但无法真正找到解决方案。

以下:

我在多个spec 文件中使用该功能(注册、登录、确认等),这意味着在检索电子邮件时,我时常会收到错误的邮件。换句话说,该函数读取收件箱中通常属于第一个测试的最后一封电子邮件。

或者有时电子邮件会在收件箱中稍晚一点,因为该功能正在读取它们,所以它读取了错误的电子邮件。

正如我对 it() 函数的期望一样:

expect(email.subject).toEqual("subject for e-mail 1"); expect(email['headers'].to).toEqual( userEmail );

因此测试中断,并出现以下错误:

  - Expected 'user registration' to equal 'user confirmation'.
  - Failed: Cannot read property '1' of null

  - Expected 'john.doe@foo.de' to equal 'jane.doe@foo.com'.
  - Failed: Cannot read property '1' of null

有没有办法强制函数只读取每个主题和每个用户的特定电子邮件?

【问题讨论】:

    标签: node.js angular protractor imap


    【解决方案1】:

    是的,您可以在 node-imapmail-listener2 使用)上找到此文档。在该包中搜索search 上的段落/项目符号,这里有一个sn-p 可以帮助您找到它:

    对于需要参数的条件类型,使用数组而不是字符串条件类型名称(例如 ['FROM', 'foo@bar.com'])。

    在下面,他们列出了您可以使用的其他几个搜索条件,他们有 to/from 用于您的用户条件,subject 用于那个。所以将此应用于mail-listener2,您将在searchFilter 属性中使用它:

    mailListener = new MailListener({
        ...(other options),
        searchFilter: [['FROM', 'automated@message.com'], ['SUBJECT', 'subject for e-mail 1']],
    });
    

    如果您需要针对不同测试使用不同的搜索条件,您可以使用新的searchFilter 条件为每个测试启动一个新的mail-listener 会话。

    【讨论】:

    • 是的,你是对的......我一直在阅读此文档,但在我的测试中,我正在检查email['headers'].to,因为当我检索电子邮件时,我会检查它是否是正确的用户接收电子邮件。而且主题与电子邮件不同,因为我正在测试的过程不同。一次主题是:register,一次主题是:confirmation,第三次是DOI confirmation。我必须以某种方式使用读取收件人电子邮件和电子邮件主题的动态变量。我已经更新了我的问题...
    • 对不起,我没有关注,解决方案有什么问题?您的问题是“强制该功能仅读取每个主题和每个用户的特定电子邮件”。我提供了一个解决方案,通过subjectto 特定用户或from 特定用户限制电子邮件。
    • 您可以为每个测试启动一个新的mail-listener 会话,以便他们可以按自己的条件进行搜索
    • 我认为你拯救了我的一天!我确实进行了至少 30 次测试,而且都成功了!我正在为每个测试 it() 启动邮件侦听器会话,我确实需要在其中检索电子邮件 - 伟大的支持/工作!
    • 当然!您能否将您最后的评论添加到您的回答中...您最后的 hin 真的很有帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-30
    • 2012-03-03
    • 2014-06-10
    • 2017-12-20
    • 1970-01-01
    • 2011-07-10
    • 2021-12-08
    相关资源
    最近更新 更多