拡張機能の有効性を主張する specs2 マッチャーを作成しようとしていますFile
(既存のendWith
マッチャーを再利用して)。ただし、型エラーが発生します。どうすれば回避できますか?
import java.io.File
import org.specs2.mutable.Specification
import org.specs2.matcher.{ Expectable, Matcher }
class SampleSpec extends Specification {
def hasExtension(extension: => String) = new Matcher[File] {
def apply[S <: File](actual: Expectable[S]) = {
actual.value.getPath must endWith(extension)
}
}
}
コンパイラエラーは次のとおりです。
<console>:13: error: type mismatch;
found : org.specs2.matcher.MatchResult[java.lang.String]
required: org.specs2.matcher.MatchResult[S]
actual.value.getPath must endWith(extension)