У меня есть эти строки в given
блоке теста / функции:
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
:
groovy .lang.MissingMethodException: Нет подписи метода: static java .io.File.createTempFile () применимо для типов аргументов: ( Значения String, String, File): [blub, odt, / tmp / junit8540540913300320698 / subdir1] Возможные решения: 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
я не очень часто использую. Есть обходные пути для создания файлов с временными именами файлов. Но я просто сбит с толку неудачей Спока. Это ошибка Спока (т.е. я должен отправить отчет об ошибке)?
Обновление: анализ классов строк
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