gpt4 book ai didi

java - 带闭包的 Spock 单元测试以错误 "No runnable methods"结束

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:39:38 27 4
gpt4 key购买 nike

我用下面的 then block 写了一个简单的特征方法:

then:
1 * view.setAttachments({ it?.size == 3 })

但是 gradle 测试 失败并出现错误:

initializationError

java.lang.Exception: No runnable methods
at org.junit.runners.BlockJUnit4ClassRunner.validateInstanceMethods(BlockJUnit4ClassRunner.java:169)
at org.junit.runners.BlockJUnit4ClassRunner.collectInitializationErrors(BlockJUnit4ClassRunner.java:104)
at org.junit.runners.ParentRunner.validate(ParentRunner.java:355)
...

initializationError

java.lang.Exception: Test class should have exactly one public zero-argument constructor
at org.junit.runners.BlockJUnit4ClassRunner.validateZeroArgConstructor(BlockJUnit4ClassRunner.java:147)
at org.junit.runners.BlockJUnit4ClassRunner.validateConstructor(BlockJUnit4ClassRunner.java:124)
at org.junit.runners.BlockJUnit4ClassRunner.collectInitializationErrors(BlockJUnit4ClassRunner.java:103)
at org.junit.runners.ParentRunner.validate(ParentRunner.java:355)
at org.junit.runners.ParentRunner.<init>(ParentRunner.java:76)
...

我注意到如果我移除闭包,就不会再有错误了

then:
1 * view.setAttachments(_) // everything works well without closure!

似乎 Spock 试图像运行另一种测试方法一样运行闭包...如何避免这种情况?

最佳答案

我在尝试编写 spring-boot 测试时遇到了类似的问题。

不要使用@RunWith(SpringRunner.class),如果您正在使用另一个 junit runner,请尝试删除它。

对我来说,我的 Spock 规范在没有指定 SpringRunner 的情况下正确执行。

关于java - 带闭包的 Spock 单元测试以错误 "No runnable methods"结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19794021/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com