ステートフルなテストのためのScalacheck documentationには、ATMマシーンが使用例として挙げられています。それが機能するためには、コマンドにはパラメータ、例えばPINまたは出金金額が必要です。与えられた例では、クラスCounter
のメソッドにはパラメータがありません。Scalacheck - コマンドへのパラメータの追加
今、私の質問は、私はscalachecksステートフルテストでは、このような方法をテストすることができる方法である:
class Counter {
private var n = 0
def inc(i: Int) = n += i
...
}
コマンドのrun
とnextState
メソッドは、パラメータを提供していません。 Random.nextInt
を追加するrun
とnextState
で値が異なるしまうので、仕事やテストが失敗しないでしょう。
case object Inc extends UnitCommand {
def run(sut: Sut): Unit = sut.inc(Random.nextInt)
def nextState(state: State): State = state + Random.nextInt
...
}
Sut
にパラメータを渡す方法はありますか?あなたはどのようにgenCommand
から気づくことのよう
ありがとう、これは私が探していたソリューションのようです! – amuttsch