2012-07-27 71 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