mail-listener2 - 如何防止功能读取错误的电子邮件?
mail-listener2 - How to prevent function from reading wrong emails?
在我的 E2E 测试中,我使用 mail-listener2 来检索电子邮件。它工作正常,除了一个让我发疯并且无法解决的问题...我一直在搜索并发现了与此 library/package 有关的不同主题和问题,但无法真正找到修复那。
以下:
我在多个 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-imap(mail-listener2
使用)上找到此文档。在该包中的 search
上搜索 paragraph/bullet,这里有一个片段可以帮助您找到它:
For criteria types that require arguments, use an array instead of just the string criteria type name (e.g. ['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
会话。
在我的 E2E 测试中,我使用 mail-listener2 来检索电子邮件。它工作正常,除了一个让我发疯并且无法解决的问题...我一直在搜索并发现了与此 library/package 有关的不同主题和问题,但无法真正找到修复那。
以下:
我在多个 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-imap(mail-listener2
使用)上找到此文档。在该包中的 search
上搜索 paragraph/bullet,这里有一个片段可以帮助您找到它:
For criteria types that require arguments, use an array instead of just the string criteria type name (e.g. ['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
会话。