2012-07-27 78 views
4

我看到了對Option類型的支持,但是對於自定義的case類呢?在ScalaTest中的case類中聲明

我有點想這樣做:

result match { 
    case SuccessCase(values) => { 
    values.foo should be ("bar") 
    } 
    case FailureCase => // should fail test, but how to say this in ScalaTest? 
} 

回答

4

你可以用失敗()失敗的目的的測試,如情況FailureCase =>不合格(「錯誤消息」),但我不知道我明白你在做什麼。也許你可以展示更多的代碼或詳細說明問題?

+1

謝謝比爾!並感謝輝煌的框架。我自己的答案是否有意義?皮特。 – 2012-07-27 12:16:39

+1

哦,但實際上,Inside也沒有幫助,因爲如果沒有指定失敗案例,測試不會失敗。 :-(所以我必須顯式使用fail()嗎?我真的只是想能夠斷言一個case類是一個特定的情況,並提取它的內容來斷言,有點像'option.value'速記...(這可能是我錯過了一些明顯的東西!) – 2012-07-27 12:37:00

1

這個工作,假設你想要的情況是DesiredCase

result match { 
  case DesiredCase(values) => { 
    values.foo should be ("bar") 
  } 
  case _ => { 
    fail("Not DesiredCase") 
    } 
} 
+1

嗨,是的,這就是我正在做的事情(比爾的回答告訴我如何明確地調用fail()。 – 2012-07-30 08:08:24