「位置」はMyClassののパラメータまたはMyClassののデータメンバーでありますか?それがOKであれば、あなたは回避策として場所を上書きすることができます
class MyClass() {
val location: Location = new Location
}
:それはとしてはMyClassを変更するにはOKです
//source code
class Location {
def continuousFeatureValues: String = "location"
}
class MyClass() {
val location: Location = new Location
}
class MyTrait extends MyClass
// test code
it should "mock" in {
val loc = mock[Location]
val dor: MyTrait = new MyTrait {override val location = loc}
(loc.continuousFeatureValues _).expects().returning("good")
dor.location.continuousFeatureValues shouldBe ("good")
}
locationは、コンストラクタのパラメータとフィールドメンバの両方です。私はMyClassをインスタンス化し、後でそれを使用します - ケースクラスに似ていますが、ケースクラスではありません。このソリューションは、私の実際のプログラムをかなり変更する必要があると思われ、私はテストのためにそれをするのが好きではありません。 – Make42