如何在 Scala 的单元测试中利用来自不同类的变量?

我想numberOwned在 Scala 的测试文件中使用来自不同类的变量。我怎么做?


这是我尝试的。


测试设备.scala:


package tests

import clicker.equipment._

import org.scalatest._


class TestEquipment extends FunSuite {

    numberOwned = 0

        test("first test"){

    }

}

设备.scala


package clicker.equipment


abstract class Equipment{


var numberOwned = 0

var name: String = ""


def goldPerSecond(): Double


}

文件目录


src

 |_clicker

 |     |_ equipment

 |           |_Equipment.scala

 |_ tests

      |_ TestEquipment.scala



幕布斯7119047
浏览 76回答 2
2回答

弑天下

由于您的抽象类没有任何状态,您可以将其转换为 Trait(接口),在 Scala 中,您可以使用如下方法定义接口trait Equipment{  var numberOwned = 0  var name: String = ""  def goldPerSecond(): Double = {      numberOwned  }} class TestEquipment extends FunSuite with Equipment {    this.numberOwned = 0        test("first test"){    }}您可以使用 FunSuite 扩展您的 TestEquipment 并实现接口 Equipment。如评论中所述,您不能同时从 FunSuite 和 BaseClass 继承。

慕桂英3389331

它不取决于它是否在测试中:您需要一个Equipment.class TestEquipment extends FunSuite {    val equipment: Equipment = ...        equipment.numberOwned = 0    test("first test"){ ... }}在 Scala 中,您可以直接执行import equipment._和引用numberOwned,但这不会改变含义。这个实例可以是this,就像 skjagini 的回答一样,但它在语义上没有多大意义:你的测试套件是一种设备吗?
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java