当前位置: 首页 > 知识库问答 >
问题:

为什么spock模拟虚空方法不起作用

骆嘉石
2023-03-14

在规范中,我想模拟类:

com.univocity.parsers.csv.csvparser

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

        parser.stopParsing() >>  {}

b)我可以在文档中找到关于为什么要为存根或模拟调用原始类方法的信息?

共有1个答案

贺俊楚
2023-03-14

Spock不能模拟final类和/或方法,CsvParser和stopParsing()是final。您可以尝试使用spock mockable扩展来使那些类/方法非final

 类似资料:
  • 问题内容: 我有两个档案 秒杀 test_spike.py: 当我运行时,第一个测试用例将通过,但是第二个将失败。而我切换到use ,则两个都失败了。 我不明白这是怎么发生的?这些情况本应全部通过。 问题答案: 对于 test_foo, 您没有正确使用补丁。您应该像这样使用它: 这给了我: 现在,第二个示例不起作用,因为您导入了bar函数(获取对其的引用),然后尝试对其进行模拟。模拟某些内容时,您

  • 问题内容: 我在这里阅读了一些有关静态方法的主题,我认为我理解滥用/过度使用静态方法可能导致的问题。但是我并没有真正理解为什么很难模拟静态方法的原因。 我知道其他模拟框架(例如PowerMock)可以做到这一点,但为什么Mockito不能? 问题答案: 我认为原因可能是模拟对象库通常通过在运行时动态创建类(使用cglib)来创建模拟。这意味着他们要么在运行时实现一个接口(如果我没有记错的话,这就是

  • 问题内容: 导入标准“日志记录”模块会对一堆虚拟条目造成sys.modules污染: 因此,导入此软件包会将额外的名称放入sys.modules中,除了它们不是模块以外,仅引用None。其他模块(例如xml.dom和编码)也有此问题。为什么? 编辑: 在bobince的答案的基础上,有一些页面描述了功能的起源(请参阅“ sys.modules中的虚拟条目”部分)和功能的未来。 问题答案: 中的值是

  • 当我用这样的sql查询执行请求时(在cosmos db模拟器中) 我有这个错误“语法错误,'GROUP'附近的语法不正确。”如果删除group by(和count(1))请求正在工作。 我的代码与 MSDN 中的第一个示例完全相同,https://docs.microsoft.com/en-us/azure/cosmos-db/sql-query-group-by 我的查询有什么问题?

  • 1)创建groovy项目 2)创建接口: 3)创建spock测试: 有没有更好的方法来“解释”spock被模仿函数的最后一个参数是vararg,因此可以省略它?