2009-02-26 86 views
7

我剛開始使用Scala的,我想知道的語言功能,您可以這樣做:Scala的「specs」BDD框架如何工作?

"PersistentQueue" should { 
    "add and remove one item" in { 
    withTempFolder { 
     val q = new PersistentQueue(folderName, "work", Config.fromMap(Map.empty)) 
     q.setup 

     q.length mustEqual 0 
     q.totalItems mustEqual 0 
     q.bytes mustEqual 0 
     q.journalSize mustEqual 0 

     q.add("hello kitty".getBytes) 

     q.length mustEqual 1 
     q.totalItems mustEqual 1 
     q.bytes mustEqual 11 
     q.journalSize mustEqual 32 

     new String(q.remove.get.data) mustEqual "hello kitty" 

     q.length mustEqual 0 
     q.totalItems mustEqual 1 
     q.bytes mustEqual 0 
     q.journalSize mustEqual 33 

     q.close 
     dumpJournal("work") mustEqual "add(11:0:hello kitty), remove" 
    } 
    } 
} 

unit tests for Kestrel的。

這是怎麼回事? "PersistentQueue" should是否意味着Scala字符串類已經用「should」方法擴展,或者在這裏發生了什麼?我快速瀏覽了Scala文檔,但無法看到該代碼示例中正在使用哪種語言功能。

回答

6

它看起來像隱式方法被添加到我的字符串類。 This post有一個演示。