我跑了我的测试,但失败了,但是出于以下(看似相互矛盾)的原因:
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}
也不起作用。
由于
答案 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
}
}
干杯!