tbr*_*lle 3 java groovy junit gradle spock
我用以下then块写了一个简单的特征方法:
then:
1 * view.setAttachments({ it?.size == 3 })
Run Code Online (Sandbox Code Playgroud)
但gradle test失败的错误:
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)
...
Run Code Online (Sandbox Code Playgroud)
我注意到如果我删除了闭包,就没有错误了
then:
1 * view.setAttachments(_) // everything works well without closure!
Run Code Online (Sandbox Code Playgroud)
似乎Spock试图运行闭包,就像它是另一种测试方法......如何避免这种情况?
我在尝试编写spring-boot测试时遇到了类似的问题.
如果你正在使用另一个,请不要使用@RunWith(SpringRunner.class)并尝试删除你的junit runner.
对我来说,我的Spock规范正确执行而没有指定SpringRunner.
| 归档时间: |
|
| 查看次数: |
3706 次 |
| 最近记录: |