我正在写一个测试(groovy语言\spock框架,如果相关的话)
最初,它使我们的应用程序向特定的交换(Office 365,如果相关)邮箱发送电子邮件。之后,我需要登录该邮箱并验证应用程序已发送的电子邮件。
我使用EWS Java API与EWS(com . Microsoft . EWS-Java-API 2.0)进行通信
连接到交换服务后,我执行以下操作:
SearchFilter searchFilter = new SearchFilter.ContainsSubstring(EmailMessageSchema.Body, "search string")
Awaitility.await()
.atMost(180, TimeUnit.SECONDS)
.until({
exchangeService.findItems(WellKnownFolderName.Inbox, searchFilter, new ItemView(1)).totalCount > 0
})
这里的Awaitility.await()本质上是一个动态等待——它重试代码,直到满足条件。它可以被任何类型的带有线程睡眠和中断条件的循环替换。
在第一次尝试时,findItems调用从未找到电子邮件-通常需要大约一分钟的时间才能发送电子邮件。
问题是在任何后续尝试中,findItems都无法成功找到该项目。但是,如果我在其上保留断点,直到我在邮箱中看到电子邮件-它会成功工作。
所以对我来说,一旦搜索失败(找不到任何东西),再次执行该方法就不会做任何事情。我做错了什么?
我建议您在FindItem调用之间设置一个Hibernate,因为您没有对后续调用之间的服务器更新时间进行限制。此外,您的SearchFilter非常耗费资源,因为它执行邮件正文的子字符串。如果你想跟踪邮件的传递,为什么不在你发送邮件时设置InternetMessageId从EWS管理的API发送电子邮件c#的Internet邮件Id,然后创建一个SearchFilter,只查找具有该ID的邮件。
问题内容: 储存程序 在此存储过程中,我有两个update语句。如果第一次更新成功执行,然后第二次执行。需要进行哪些更改? 问题答案: 在第一个之后,您可以检查受影响的行数。 如果返回的结果是所需的更新数量(可能> 0),则仅触发第二个。 可以通过检查受影响的行数来包围第二个。
问题内容: 在下面的代码中,迭代运行两次。 是否可能恰好在第一次迭代和第二次迭代之间运行“ test2 <-true”? 我的意思是,在第一次迭代结束而第二次迭代未开始时,是否将true发送给“ test2”? 问题答案: 是。由于您的频道已缓冲,可以保存1个值。主执行流程可以继续进行,而无需您的匿名goroutine读取您发送到通道的值,并且可以在goroutine唤醒并读取通道上的值之前在通道
我正在尝试更改角7的密码功能, 从后端端,如果当前密码不正确,它将返回true。 在角度侧,将显示错误消息。 但问题是我必须点击两次显示错误信息,甚至我可以看到日志打印真实值的响应,但不确定为什么*ngif不工作 模板侧 我的组件方面 服务方 有人能解释一下为什么我必须点击提交按钮两次才能显示html元素吗 谢谢
我正在使用以下项目结构 子模块包含在设置中。gradle,并在内部版本中配置。根项目的渐变。 我有3个任务要做 (每个子项目都有这个) (这是每个子项目都需要自己工作的打包机制) (这只需要调用一次) 我想能够打电话 $gradle部署 build.gradle
fileInput包含一个大约30行的csv文件,我只想访问第二行。 我需要访问第二行而不是第一行(第一行包含列名称)<代码>行[1]给出了
如果我在maven deploy插件中调用两个部署文件执行 然后,第一次执行的javadoc上传也在第二次执行中执行(查找basis-vs-bo-20.0.2-20161103.130940-25-javadoc.jar): 为什么参数javadoc会导致第二次执行再次上载同一个文件?
我正在使用Android中的Speech认知器和识别器来实现语音识别。我的目标是在我的语音识别器在屏幕上显示结果后重新开始听语音。为此,我使用以下代码。 问题是,第一次运行正常并显示结果,但在第二次开始侦听(从onResults方法调用)后,由于某种原因,它听不到正在说的内容。然后它给出一个ERROR\u SPEECH\u TIMEOUT错误,这意味着没有语音输入。在Logcat上,我可以看到它进
当我第二次运行MacBook Pro时(在Eclipse和直接从命令行运行),以下内容完全冻结了我的MacBook Pro。第一次显示图形用户界面,应用程序按预期运行,但当我停止并重新运行它时,它会完全冻结计算机。 有人知道吗?我认为解决方案可能是–launcher的某种组合。secondThread,-XstartOnFirstThread,-XstartOnSecondThread类似于在Ma