java - File.createTempFile() 出现意外的 Spock MissingMethodException

标签 java testing groovy spock

我在测试/功能的给定 block 中有这些行:

log.debug( "subdir1 |$subdir1| class ${subdir1.class}")
File.createTempFile​( 'blub', 'odt', subdir1 )

日志消息是:

2020-01-30 08:34:47,433 - 1404 ms [Test worker] DEBUG core.IndexCreationSpec [core.IndexCreationSpec] $spock_feature_1_26:706 
subdir1 |/tmp/junit8540540913300320698/subdir1| class class java.io.File

但是我在 createTempFile 行上遇到以下 Spock 失败:

groovy.lang.MissingMethodException: No signature of method: static java.io.File.createTempFile​() is applicable for argument types: (String, String, File) values: [blub, odt, /tmp/junit8540540913300320698/subdir1] Possible solutions: createTempFile(java.lang.String, java.lang.String, java.io.File), createTempFile(java.lang.String, java.lang.String), createNewFile(), createTempDir(), createTempDir(java.lang.String, java.lang.String)

这种File方法不是我经常使用的方法。有一些解决方法可以创建具有临时文件名的文件。但我只是对 Spock 的失败感到困惑。这是 Spock 故障吗(即我应该提交错误报告)吗?

更新:字符串类分析

def blub = 'blub'
log.debug( "blub |$blub| class ${blub.class} class2 ${'blub'.class}")

2020-01-30 09:52:34,187 - 1375 ms [Test worker] DEBUG core.IndexCreationSpec [core.IndexCreationSpec] $spock_feature_1_26:709
blub |blub| class class java.lang.String class2 class java.lang.String

最佳答案

找到答案了。这非常奇怪,而且毫无疑问发生的可能性是千分之一。但可能会对某人有帮助,所以我建议不要删除这个问题。

不知何故一个神秘的 Unicode 字符,u200B ,“零宽度空间”已在 File.createTempFile 之间滑动。和(

删除这个解决了问题!看来这被认为是我试图调用的方法的一部分。如果我更加注意 Groovy 格式(Eclipse,请参阅我的答案 here ),我会注意到它带有下划线(=“无法识别的方法”),而它本应是无下划线和斜体的(=“识别的静态方法”) ”)。

关于java - File.createTempFile() 出现意外的 Spock MissingMethodException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59981975/

相关文章:

unit-testing - MSTest 中的 PublicForTests 注释

groovy - 如何在Griffon中轻松显示/隐藏 View

gradle - 升级到 grails 3.1.13,现在无法解析类 org.grails.databinding.converters.web.LocaleAwareNumberConverter

Grails 和 Spring 安全插件 : Redirecting user upon login based on roles

java - 从 List<Optional> 转换为 List<Optional<?>> 是否安全?

java - 从 JTextPane 将关键监听器添加到 JPopupMenu 可以,但不能从 JTextArea

javascript - 如何在 e2e AngularJS 测试中上传文件?

c# - Selenium WebDriver 测试登录验证

java - 在 git update-index --assume-unchanged 之后 merge 的问题

java - 以编程方式添加锁屏通知Android的权限