【问题标题】:Why spock mocking void method does not work为什么 spock 模拟 void 方法不起作用
【发布时间】:2021-04-02 15:40:06
【问题描述】:

在规范中我想模拟类:

com.univocity.parsers.csv.CsvParser

我尝试这样做:

        parser = Stub() 
        parser.stopParsing() >> null

        parser.stopParsing() >>  {}

没有任何作用。

总是调用原始类方法。

我用 Groovy 的 2 和 3 版本以及正确的 Spock 版本进行了尝试。

a) 我需要做什么才能完成这项工作?

b) 我可以在哪里找到关于 为什么 Stub 或 Mock 调用原始类方法?

【问题讨论】:

  • 你能展示完整的测试吗

标签: spock


【解决方案1】:

Spock 不能模拟 final 类和/或方法,而 CsvParserstopParsing() 是最终的。您可以尝试使用spock mockable 扩展来使这些类/方法成为非final

【讨论】:

    猜你喜欢
    • 2016-08-20
    • 1970-01-01
    • 1970-01-01
    • 2014-06-29
    • 1970-01-01
    • 1970-01-01
    • 2016-12-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多