2009-02-26 2 views
7

난 그냥 스칼라을 시작하는거야, 나는 언어 기능을 사용하면이 작업을 수행 할 수있는 궁금하네요 :스칼라를위한 "스펙"BDD 프레임 워크는 어떻게 작동합니까?

unit tests for Kestrel에서의
"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" 
    } 
    } 
} 

.

여기 무슨 일 이니? "PersistentQueue" should은 스칼라 문자열 클래스가 "should"메서드로 확장되었다는 것을 의미합니까? 아니면 여기에서 다른 것입니까? 스칼라 문서를 보았지만이 코드 샘플에 사용 된 언어 기능을 확인할 수 없었습니다.

답변

6

내게 암시 적 메서드가 String 클래스에 추가 된 것처럼 보입니다. This post에 데모가 있습니다.