一個異步的副作用我有一個簡單的場景,我做第三方服務的一些工作,如果他們中的一個出現了故障,那麼我想清理做了什麼。如何測試與Scala和的Mockito
客戶並不需要等待清理完成,因此清理工作作爲一個側面影響,異步函數得到迴應。
在使用我的Mockito要verify
的清理方法被調用,但我得到一個競爭條件和非確定性測試。
這裏是代碼片段:
val eventualImage = imageService.saveImage(uploadedImage, None, parent, imageActions)
ScalaFutures.whenReady(eventualImage.failed, timeout(6 seconds), interval(15 millis)) { ex =>
val x = Mockito.verify(mockS3Repository, Mockito.times(1)).deleteFileFromS3(s3Location) // where this function is pure async and nothing is waiting for her to complete
ex shouldBe a [exception.type]
}
有什麼辦法,我可以等待它與出改變我的代碼完成?
包裹在'最終{}'? –
最終找到了解決方案 – Gleeb