2014-02-17 1 views
4

Java 코드를 테스트하는 ScalaTest (ScalaCheck 속성을 혼합합니다)에서 임의 임의 생성기를 만들 수 있습니까? 예를 들어ScalaTest에서 Java 코드 테스트 용 임의 생성 생성자 ScalaCheck

val fund = new Fund() 
val fundAccount = new Account(Account.RETIREMENT) 
val consumer = new Consumer("John") 
.createAccount(fundAccount) 
fund.addConsumer(consumer) 
fundAccount.deposit(amount) 

위 주장의 결과 등

답변

14

물론입니다 전에 준비 코드 FORALL 내에서 각 테스트에 필요한 단계는 다음과 같습니다. 이렇게하면 시작할 수 있습니다.

import org.scalacheck._ 
import Arbitrary._ 
import Prop._ 

case class Consumer(name:String) 

object ConsumerChecks extends Properties("Consumer") { 
    lazy val genConsumer:Gen[Consumer] = for { 
    name <- arbitrary[String] 
    } yield Consumer(name) 

    implicit lazy val arbConsumer:Arbitrary[Consumer] = Arbitrary(genConsumer) 

    property("some prop") = forAll { c:Consumer => 
    // Check stuff 
    true 
    } 
}