2009-02-26 6 views
7

私はスカラ座で始めるんだ、と私は言語の機能を使用すると、これを実行することを可能にする思ったんだけど:Scala用の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は、Scala文字列クラスが "should"メソッドで拡張されたことを意味しますか、それとも何か他のことが起こっていますか?私はScalaのドキュメントをすばやく見ていましたが、このコードサンプルで使用されている言語機能を確認できませんでした。

答えて

6

暗黙のメソッドが私にStringクラスに追加されているようです。 This postにデモンストレーションがあります。

関連する問題