验证 Spock 中没有抛出异常

Posted

技术标签:

【中文标题】验证 Spock 中没有抛出异常【英文标题】:Verify no exceptions were thrown in Spock 【发布时间】:2015-11-14 14:38:19 【问题描述】:

我是 Spock 的新手,我仔细阅读了他们的在线文档。我有一个测试用例,我需要验证我的夹具与非模拟协作者的交互是否产生异常:

class FizzSpec extends Specification 
    def "no exception thrown when we hail buzz"() 
        given:
        Fizz fixture = new Fizz()
        Buzz buzz = new Buzz("YES", true, "Garble barb") // A non-mock!

        when:
        fixture.hail(buzz)

        // TODO: How to verify the hail didn't produce an exception?
        // then:
        // thrown() == null
    

关于如何实现这一点的任何想法?

【问题讨论】:

如果知道异常类型可以notThrown(NullPointerException) 【参考方案1】:

找到了。

你可以使用

noExceptionThrown()

断言没有抛出任何东西

【讨论】:

这里是API定义spockframework.github.io/spock/javadoc/1.0/spock/lang/… 你是在抛出异常的语句之后/之前写的吗?还是将语句作为参数传递给noExceptionThrown()

以上是关于验证 Spock 中没有抛出异常的主要内容,如果未能解决你的问题,请参考以下文章

Spock - 使用数据表测试异常

如何验证没有抛出异常

如何验证没有抛出异常

我可以为未授权或未验证的 .NET 异常抛出

在身份验证 Spring Security + WebFlux 期间抛出和处理自定义异常

JUnit 5:如何断言抛出异常?