반응형
Table base test
ScalaTest는 PropertyBaseTest 스타일 역시 지원해줍니다.
제일 간단하게 사용하는 방법은 단순히 TableDrivenPropertyChecks trait를 상속받으면 됩니다.
테스트를 위한 객체들은 Table class를 통해 만들 수 있습니다.
Table의 첫 번째 인자는 제공해줄 객체들의 설명, 두 번째 이후부터는 실제 객체들을 넣으면 됩니다.
Scala의 튜플 제한으로 인해 한 문장에 최대 22개까지만 객체를 넣을 수 있습니다.
import org.scalatest.funspec.AnyFunSpec
import org.scalatest.matchers.should.Matchers
import org.scalatest.prop.TableDrivenPropertyChecks
class SetRefSpec extends AnyFunSpec with Matchers with TableDrivenPropertyChecks {
// Table에는 여러 객체를 넣을 수도 있습니다
// Table(("객체1", "객체2"), (Set(1), Set(2)), (Set(3), Set(4, 5)))
// 객체는 최대 22개까지만 넣을 수 있습니다
// Table(("1", ... "22"), (Set(1), ..., Set(22)))
describe("Set이 비어있지 않을경우") {
it("isEmpty는 false이다") {
val table = Table("객체", Set(1), Set(1, 3, 5), Set(6, 8))
forAll(table) { case data =>
data.isEmpty shouldBe false
}
}
}
}
Generator base test
Table 기반으로 직접 테스트를 만드는 것 외에도 동적으로 데이터를 만들 수도 있습니다.
많이 사용하지는 않아서 직접 설명하지는 않고 만약 사용을 원한다면 문서를 참고하시면 됩니다.
반응형