2

我有一个文件列表exampleProblems,我想对每个文件应用一个方法并检查它是否不会引发异常。问题是我没有从 Specs2 收到好的失败消息。我需要找出导致问题的元素。我已经尝试添加一个aka,但没有成功。

这是代码:

def is: Fragments =
    "parse all example uai files" ! (exampleProblems must contain((p: String) => {
      Problem.parseUAIProblem(ClassLoader.getSystemResourceAsStream(p)).aka(p) must throwAn[Exception].not
    }).forall)

这是我收到的信息:

java.lang.Exception: 有 1 次失败得到异常 java.lang.IllegalArgumentException: 要求失败:变量没有递增排序

at vultura.fastfactors.UAIParserTest$$anonfun$is$1$$anonfun$apply$1.apply(UAIParserTest.scala:24) at vultura.fastfactors.UAIParserTest$$anonfun$is$1$$anonfun$apply$1.apply(UAIParserTest.标量:24)

4

1 回答 1

3

这意味着throwA[E]应该改进匹配器以在使用aka. 我会解决这个问题,但作为一种解决方法,您可以编写:

class TestSpec extends Specification {  def is =
  "parse all example uai files" ! {
    Seq("a", "b") must contain { (p: String) =>
      s"$p is ok" ==> { { sys.error("bang"); p} must not (throwAn[Exception]) }
    }.forall
  }
}

这显示:

[info] x parse all example uai files
[error]  There is 1 failure
[error]  a is not ok because Got the exception java.lang.RuntimeException: bang
于 2013-10-16T13:17:20.780 回答