Насмешка со значениями домена
Мне интересно, как я могу установить доменные значения или диапазон значений на насмешку.
trait MyInt{
def getInt():Int
}
trait MyString{
def getName():String
}
Я попробовал некоторые, но ничего не работает. Мне нравится определять макет MyInt
вернуть значения из (0,100)
а также MyString
черта возврата значений из этого домена: {"Dani",Jonny",Jessica",....}
,
Как я могу написать это, используя Scatatest?
1 ответ
Использование mockito plus 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))