ScalaTest thrownBy 测试异常信息
ScalaTest thrownBy testing exception message
为了测试我的代码是否抛出预期的异常,我使用以下语法:
an [IllegalArgumentException] should be thrownBy(Algorithms.create(degree))
有什么方法可以测试抛出的异常是否包含预期的消息,例如:
an [IllegalArgumentException(expectedMessage)] should be thrownBy(Algorithms.create(degree)) -- what doesn't compile
?
the [ArithmeticException] thrownBy 1 / 0 should have message "/ by zero"
并使用该示例:
the [IllegalArgumentException] thrownBy(Algorithms.create(degree)) should have message expectedMessage
您检查邮件的语法有误。作为 bjfletcher 建议的替代方案,您还可以根据文档使用以下内容:
- 捕获异常并将其赋值给一个val
val thrown = the [IllegalArgumentException] thrownBy Algorithms.create(degree)
- 使用 val 检查其内容。例如:
thrown.getMessage should equal ("<whatever the message is")
我个人更喜欢 bjfletcher 介绍的第一个替代方案,因为它更紧凑。但是捕获异常本身,让您有更多机会检查其内容。
为了测试我的代码是否抛出预期的异常,我使用以下语法:
an [IllegalArgumentException] should be thrownBy(Algorithms.create(degree))
有什么方法可以测试抛出的异常是否包含预期的消息,例如:
an [IllegalArgumentException(expectedMessage)] should be thrownBy(Algorithms.create(degree)) -- what doesn't compile
?
the [ArithmeticException] thrownBy 1 / 0 should have message "/ by zero"
并使用该示例:
the [IllegalArgumentException] thrownBy(Algorithms.create(degree)) should have message expectedMessage
您检查邮件的语法有误。作为 bjfletcher 建议的替代方案,您还可以根据文档使用以下内容:
- 捕获异常并将其赋值给一个val
val thrown = the [IllegalArgumentException] thrownBy Algorithms.create(degree)
- 使用 val 检查其内容。例如:
thrown.getMessage should equal ("<whatever the message is")
我个人更喜欢 bjfletcher 介绍的第一个替代方案,因为它更紧凑。但是捕获异常本身,让您有更多机会检查其内容。