1

モッキングでドメイン値または値の範囲を設定するにはどうすればよいか疑問に思っています。

trait MyInt{
     def getInt():Int
}


trait MyString{
     def getName():String
}

いくつか試してみましたが、何も機能しません。MyInt私は、このドメインから値を返すためのモックと、このドメインから値を返すためのトレイトを定義するのが好き(0,100) ですMyString: {"Dani",Jonny",Jessica",....}.

scalatest を使用してどのように記述できますか?

4

1 に答える 1

3

mockito と scalatest の使用

import org.mockito.Mockito._
import org.scalatest.FlatSpec
import org.scalatest.mock.MockitoSugar
import scala.util.Random

class FirstSpec extends FlatSpec with MockitoSugar {

    "The mock" should "pick a value from the interval" in {
        val mockInt = mock[MyInt]
        val mockStr = mock[MyString]

        when(mockInt.getInt()).thenReturn(pickOneFrom(1 to 100 toList))
        when(mockStr.getName()).thenReturn(pickOneFrom(List("Dani", "Jonny", "Jessica")))

        println(mockInt.getInt())
        println(mockStr.getName())

    }

}

pickOne は次のように定義されます。

def pickOneFrom[T](domain: List[T]) = domain(Random.nextInt(domain.length))
于 2013-06-16T09:26:05.610 に答える