Я начал играть со средой тестирования Спока, и мой раздел build.gradle
зависимостей выглядит так:
dependencies {
testCompile "org.spockframework:spock-core:1.3-groovy-2.5"
}
У меня есть (бесполезный) тест Спока, который требует создания заглушки:
def 'A test that will fail'() {
given: ''
def random = Stub(Random)
}
При запуске тест не пройден с указанной ошибкой:
CannotCreateMockException: невозможно создать макет для класса java.util.Random. Пересмешивание неинтерфейсных типов требует библиотеки генерации кода. Пожалуйста, поместите последнюю версию byte-buddy или cglib-nodep в путь к классу.
Эта ошибка упоминается в документации Спока и вызвана тем, что cglib или byte-buddy недоступны во время выполнения.
Учитывая, что pom спока-ядра перечисляет и byte-buddy, и cglib как зависимости компиляции , почему они не сохраняются во время выполнения? Другими словами, зачем нам явно добавлять следующую зависимость времени выполнения в наш файл build.gradle?
testRuntime "net.bytebuddy:byte-buddy:1.9.3"