使用 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
}
}
干杯!
我运行我的测试失败了,但由于以下(看似矛盾的)原因:
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
}
}
干杯!