3
斯卡拉有一些很好的測試庫(Specs,ScalaTest,ScalaCheck)。但是,使用Scala強大的類型系統,在Scala中開發的API的重要部分是靜態表示的,通常以編譯器阻止的一些不受歡迎或不允許的行爲的形式表示。斯卡拉的靜態測試
那麼,什麼是測試編譯器在設計庫或其他API時是否阻止了某些事情的最佳方法?將不應該註釋掉的代碼應該是不可編譯的,然後取消註釋來驗證它。
一個人爲的例子測試列表:
val list: List[Int] = List(1, 2, 3)
// should not compile
// list.add("Chicka-Chicka-Boom-Boom")
是否現有的測試庫,處理這樣的案件嗎?有沒有一種方法可以讓人們使用它?
我正在考慮的方法是將代碼嵌入到三引號字符串或xml元素中,並在我的測試中調用編譯器。調用代碼看起來像這樣:
should {
notCompile(<code>
val list: List[Int] = List(1, 2, 3)
list.add("Chicka-Chicka-Boom-Boom")
</code>)
}
或者,一起叫上翻譯的expect型腳本線的東西。
這是一個很棒的切片。感謝您閱讀我的想法! – 2009-12-07 12:14:04