我有一个案例类case class FOO
。并且想测试给定参数值myMethod
的返回FOO()
的方法value1
。
我有一个类似myMethod(value1) should equal FOO
的测试。
测试失败,并显示FOO did not equal FOO()
。
FOO
和FOO()
有什么区别?
[case class Foo()
消减成等于]
class Foo() extends Product with Serializable {
// some methods
}
object Foo extends (() => Foo) with Serializable {
// some methods
}
因此,Foo()
创建Foo类的实例,而Foo
是对Foo伴随对象的引用。
但是,如果案例类Foo
没有参数,则应考虑将其设为案例对象。如果您不使用内部可变状态[1]来滥用案例类,则无论如何,所有Foo()
实例都应该是无法区分的。
[1]如果是,请考虑使用常规类。