使用FlatSpec时出现最大错误

时间:2015-07-17 15:28:46

标签: scala sbt scalatest

我跑了我的测试,但失败了,但是出于以下(看似相互矛盾)的原因:

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}

也不起作用。

由于

1 个答案:

答案 0 :(得分:2)

如果您正在测试的类(myClassVector)被声明为case class,那么编译器会自动在您的类上创建一个equals方法来比较您的字段测试相等性的类。但是,如果您将myClassVector声明为vanilla类(没有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
  }
}

干杯!