scala – 如何测试返回未来的方法?
发布时间:2020-12-16 09:13:58 所属栏目:安全 来源:网络整理
导读:我想测试一种返回未来的方法.我的尝试如下: import org.specs2.mutable.Specificationimport scala.concurrent.ExecutionContext.Implicits.globalimport scala.util.{Failure,Success}class AsyncWebClientSpec extends Specification{ "WebClient when do
我想测试一种返回未来的方法.我的尝试如下:
import org.specs2.mutable.Specification import scala.concurrent.ExecutionContext.Implicits.global import scala.util.{Failure,Success} class AsyncWebClientSpec extends Specification{ "WebClient when downloading images" should { "for a valid link return non-zero content " in { val testImage = AsyncWebClient.get("https://www.google.cz/images/srpr/logo11ww.png") testImage.onComplete { res => res match { case Success(image) => image must not have length(0) case _ => } AsyncWebClient.shutDown } } } } 除了我无法使这个代码工作的事实,我猜可能会有一个更好的方法来测试未来的未来的匹配器的期货. 在specs2中如何正确执行? 解决方法
您可以使用Matcher.await方法将Matcher [T]转换成Matcher [Future [T]]:
val testImage: Future[String] = AsyncWebClient.get("https://www.google.cz/images/srpr/logo11ww.png") // you must specify size[String] here to help type inference testImage must not have size[String](0).await // you can also specify a number of retries and duration between retries testImage must not have size[String](0).await(retries = 2,timeout = 2.seconds) // you might also want to check exceptions in case of a failure testImage must throwAn[Exception].await (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |