【问题标题】:ScalaTest asserting collection contain a typeScalaTest 断言集合包含一个类型
【发布时间】:2019-11-11 06:56:48
【问题描述】:

我有一个像下面这样的集合

val buffer: Buffer[Try[E]]

我想断言buffer 内不包含任何Failure。理想情况下我想这样做

buffer should not contain a[Failure[_]]

但是它似乎没有正确检查类型。

【问题讨论】:

    标签: scala scalatest


    【解决方案1】:

    您能具体说明您的问题吗?

    以下代码编译运行

    src/test/scala/Test1.scala

    import org.scalatest.FlatSpec
    import org.scalatest.Matchers._
    import scala.collection.mutable
    import scala.collection.mutable.ListBuffer
    import scala.util.{Failure, Success, Try}
    
    class Test1 extends FlatSpec {
    
      class E
    
      val buffer: mutable.Buffer[Try[E]] = ListBuffer(Success(new E), Success(new E))
    
      buffer should not contain a[Failure[_]]
    
    }
    

    a/an 应该与

    之类的异常一起使用
    an [IndexOutOfBoundsException] should be thrownBy s.charAt(-1) 
    

    http://www.scalatest.org/user_guide/using_matchers

    试试

    buffer filter(_.isFailure) should be (empty).
    

    【讨论】:

    • 它编译并运行。但它没有正确断言。即使你输入buffer should not contain a[Success[_]],它也会通过
    • a/an 应该与 an [IndexOutOfBoundsException] should be thrownBy s.charAt(-1) scalatest.org/user_guide/using_matchers 等异常一起使用
    • 试试buffer filter(_.isFailure) should be (empty)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-23
    • 1970-01-01
    • 2017-12-02
    • 2019-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多