2015-06-09 7 views
5

मैं निम्नलिखित परीक्षणदो तारों की तुलना करते समय सफेद-रिक्त स्थान को अनदेखा करने के लिए स्केलेटेस्ट मैचर कैसे बनाएं?

"Matchers" should "ignore whitespace if configured so" in { 
    " aaa \n \n\r bbb".replaceAll("\\s+", " ") shouldBe "\naaa bbb".replaceAll("\\s+", " ") 
    } 

यह करने के लिए एक scalatest मुहावरेदार तरीका नहीं है है?

उत्तर

9

मैंने पाया मैं निम्नलिखित नॉर्मलाइज़र

import org.scalactic._ 
val whiteSpaceNormalised: Uniformity[String] = 
    new AbstractStringUniformity { 
    /**Returns the string with all consecutive white spaces reduced to a single space.*/ 
    def normalized(s: String): String = s.replaceAll("\\s+", " ") 
    override def toString: String = "whiteSpaceNormalised" 
    } 

परीक्षण बनाई http://www.scalatest.org/user_guide/using_matchers

import org.scalatest.Matchers._ 
import org.scalactic.Explicitly._ 
import org.scalactic.StringNormalizations._ 
"Hi" should equal ("hi") (after being lowerCased) 

पर केस संवेदी तुलना के लिए कुछ सामान्य है कि वहाँ बहु लाइन के लिए अब

import org.scalatest.Matchers._ 
import org.scalactic.Explicitly._ 
import org.scalactic.StringNormalizations._ 
" aaa \n \n\r bbb " should equal("\naaa bbb  \t")(after being whiteSpaceNormalised) 
+0

है स्ट्रिंग्स, आप '' 'डीफ सामान्यीकृत (एस: स्ट्रिंग): स्ट्रिंग = s.replaceAll ("(? s) \\ s +", "") .trim''' – botkop

संबंधित मुद्दे

 संबंधित मुद्दे