2

我正在编写我的第一个Funspec,并希望在多个测试中使用相同的夹具,但仍想在每个测试上使用一个新实例。为此,我使用了这个BeforeAndAfter特征。我的问题是我不知道如何将被测对象的初始化引用到before方法中,并且仍然将其存储在 aval中以使其最终确定。电流看起来像:

class CarTest extends FunsSpec with BeforeAndAfter{

  var car:Car = _

  before { 
      car = Car("BMW i3")
  }

  describe("A car") {

     it("can accelerate") { //do some stuff with car }

     it("can break") { //do some other stuff with car}

  }
}

所以,问题是:有没有办法制作car aval并且仍然在每个方法之前用 初始化它ScalaTest

4

1 回答 1

4

您可以尝试使用这样的夹具:

import org.scalatest.FunSpec
import org.scalatest.BeforeAndAfter
import org.scalatest.fixture

case class Car(model:String)
class CarTest extends fixture.FunSpec{

  type FixtureParam = Car
  def withFixture(test: OneArgTest) {
    val car = Car("BMW")
    test(car)
  }

  describe("A car") {

     it("can accelerate") { car =>

     }

     it("can break") { car =>

     }
  }
}
于 2013-05-04T13:06:21.213 回答