es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Especificación Parametrizada de Spock no funciona con CompileStatic.

Requisitos previos:
Adopt OpenJDK 11,
Gradle 6.8.1,
Groovy 3.0,
Spock 2.0,

En primer lugar, tengo una dependencia de excepciones con una clase generadora estática interna:

#: [Comprobación de tipos estáticos] – No se puede encontrar un método coincidente java.lang.Object#withSomeMethod(int). Por favor, compruebe si el tipo declarado es correcto y si el método existe.

En línea #, columna #.
.withSomeMethod(1)

Luego declaré variables en la Especificación de Clase. Pero tengo excepciones:

SomeSpec.groovy: 12: los bloques “where” solo pueden contener parámetros

¿Cómo puedo integrar la compilación estática con las pruebas de parametrización de Spock?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para integrar la compilación estática con las Pruebas de Parametrización de Spock, puedes seguir los siguientes pasos:

    1. Asegúrate de que tu versión de Gradle sea al menos 6.8.1 y que hayas adoptado OpenJDK 11.
    2. Agrega las siguientes dependencias a tu archivo build.gradle:

      dependencies {
         testCompile "org.spockframework:spock-core:2.0-groovy-3.0"
         testCompile "org.codehaus.groovy:groovy-all:3.0.0"
      }
      

    3. En tu especificación de Spock, añade la anotación @CompileStatic para habilitar la compilación estática para esa clase. Por ejemplo:
      import spock.lang.Specification
      import groovy.transform.CompileStatic
      
      @CompileStatic
      class MySpec extends Specification {
         def "test some functionality"() {
             expect:
             result == expectedResult
             where:
             result | expectedResult
             1     | 1
             2     | 2
         }
      }
      
    4. Al utilizar pruebas de parametrización, asegúrate de que tu bloque where solo contenga las parametrizaciones. En el ejemplo anterior, el bloque where solo contiene las variables result y expectedResult.

    Con estos pasos, deberías poder integrar la compilación estática con las Pruebas de Parametrización de Spock en tu proyecto Java.

Comments are closed.