Scala Test
2018-10-10 (Wed) · 137 words

Property Based Testing

テストデータを半自動生成する

Mastering flatMap !

flatten と map が、同時に行われるのが flatMap - map -> flatten

Seq(Seq(1,2,3), Seq(), Seq(5.6)).flatten(identity) // List(1, 2, 3, 5.6): scala.collection.Seq
Seq(Seq(1,2,3), Seq(), Seq(5.6)).flatMap(identity) // List(1, 2, 3, 5.6): scala.collection.Seq
Seq(Seq(1,2,3), Seq(), Seq(5.6)).map(identity) // List(List(1, 2, 3), List(), List(5.6)): scala.collection.Seq
Seq(Seq(1,2,3), Seq(), Seq(5.6)) flatten { x => x.size } // コンパイルエラー
Seq(Seq(1,2,3), Seq(), Seq(5.6)) flatMap { x => x.size } // コンパイルエラー
Seq(Seq(1,2,3), Seq(), Seq(5.6)) map { x => x.size } //  List(3, 0, 1): scala.collection.Seq
Seq(Seq(1,2,3), Seq(), Seq(5.6)) flatten { x => Seq(x.size) } // List(3, 0, 1): scala.collection.Seq
Seq(Seq(1,2,3), Seq(), Seq(5.6)) flatMap { x => Seq(x.size) } // List(3, 0, 1): scala.collection.Seq
Seq(Seq(1,2,3), Seq(), Seq(5.6)) map { x => Seq(x.size) } // List(List(3), List(0), List(1)): scala.collection.Seq

Cake パターン

NG

trait UserRepository

object UserRepositoryImpl extends UserRepository

object UserService {
  val rep = UserRepositoryImpl
}

Top     back     Posts     Tags     About Me