使用 FlatSpec 时出现最大错误

Scalatest Error When Using FlatSpec

我运行我的测试失败了,但由于以下(看似矛盾的)原因:

should return an myClassVector *** FAILED ***
[info]   Expected myClassVector(3, 9, 12), but got myClassVector(3, 9, 12)

这是我的实际测试:

 class myClassVector extends FlatSpec
{
     "myClassVector" should "return myClassVector" in {
            val test = Vector[Int](1, 3, 4)
            val cvec = new myClassVector(test)

            assertResult(cvec(3,9,12)){cvec * 3}
                                                                                           }

}

我还想指出:

assertResult((3,9,12)){cvec*3}

也不行。

谢谢

如果您正在测试的 class (myClassVector) 被声明为 case class,那么编译器会自动在您的 [=23= 上创建一个 equals 方法] 比较 class 中的字段以测试是否相等。但是,如果您将 myClassVector 声明为 vanilla class(没有 case 关键字),那么您将需要提供自己的 equals 方法。

这是一个例子:

class myClassVector(val a: Int, val b: Int, val c: Int) {
  override def equals (that: Any) = that match {
    case that: myClassVector =>
      a == that.a && b == that.b && c == that.c
  }
}

干杯!