How to test methods that return Future?

前端 未结 6 2118
时光说笑
时光说笑 2021-02-07 08:25

I\'d like to test a method that returns a Future. My attempts were as follows:

import  org.specs2.mutable.Specification
import scala.concurrent.Exec         


        
6条回答
  •  执笔经年
    2021-02-07 08:33

    Wondering why @etorreborre did not mention "eventually"

    See https://github.com/etorreborre/specs2/blob/master/tests/src/test/scala/org/specs2/matcher/EventuallyMatchersSpec.scala#L10-L43

    class EventuallyMatchersSpec extends Specification with FutureMatchers with ExpectationsDescription { section("travis")
    addParagraph { """
    `eventually` can be used to retry any matcher until a maximum number of times is reached
    or until it succeeds.
    """ }
    
      "A matcher can match right away with eventually" in {
        1 must eventually(be_==(1))
      }
      "A matcher can match right away with eventually, even if negated" in {
        "1" must not (beNull.eventually)
      }
      "A matcher will be retried automatically until it matches" in {
        val iterator = List(1, 2, 3).iterator
        iterator.next must be_==(3).eventually
      }
      "A matcher can work with eventually and be_== but a type annotation is necessary or a be_=== matcher" in {
        val option: Option[Int] = Some(3)
        option must be_==(Some(3)).eventually
      }
    

提交回复
热议问题