因此,在開始我不得不ScalaTest自己的匹配,使用word不
def parseB(string : String)(implicit context : Context) : Float = parseAll(gexp, string).get.eval(context).left.get
,然後在測試
implicit var context = Context()
parseB("False") should be(false)
parseB("False") should not be(true)
然後我寫了一個自定義的匹配
case class ReflectBooleanMatcher(value : Boolean)(implicit context : Context) extends Matcher[String] with ExpressionParser{
def parseB(string : String) : Boolean = parseAll(gexp, string).get.eval(context).right.get
def apply (string : String) : MatchResult =
MatchResult(parseB(string) == value, "", "")
}
所以我測試轉向
"False" should reflectBoolean(false)
但
"False" should not reflectBoolean(true)
當然Breaks-,我從來沒有說過它可以匹配負。那我怎麼說呢?
如果你測試它,你能確認它在你的機器上工作嗎? –