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.

Problema al autenticar la URL en las pruebas de Spock.

Tengo un archivo Groovy llamado gitClone.groovy que tiene una llamada de función.

def call(credentials, url, project, branch, path, refs, noTags=false,
timeout=20)
{

}

Estoy escribiendo una prueba para validar la ‘url’. Quiero escribir un caso de prueba que valide si la URL es correcta o no. Mi archivo de prueba es el siguiente: gitCloneSpec.groovy

import com.homeaway.devtools.jenkins.testing.JenkinsPipelineSpecification;
import spock.lang.*
import java.net.URL;

public class gitCloneSpec extends JenkinsPipelineSpecification {

    def gitClone = null
    def check = 0
    def setup() {
            gitClone = loadPipelineScriptForTest("vars/gitClone.groovy")
            gitClone.getBinding().setVariable( "url", "https://www.google.com/")

            }

    def "validate url"(){
            when:
                    try {
                            URL u  = new URL(url)
                            u.toURI()
                            check = 1
                    }

                    // If there was an Exception
                    // while creating URL object
                    catch (Exception e) {
                            check = 2;
                    }
            then:
                    check == 1
            }

}

De alguna manera, ‘url’ no puede almacenar la cadena “http://www.google.com” y arroja la excepción donde ‘check’ se actualiza con el valor ‘2’. ¿Cómo puedo realizar esta prueba?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para realizar esta prueba, es necesario asegurarse de que la variable “url” esté correctamente asignada al valor deseado en el método “setup()”.

    Un enfoque sería utilizar el método “setVariable()” para asignar el valor directamente a la vinculación del script cargado:

    gitClone.getBinding().setVariable( "url", "https://www.google.com/")
    

    Otro enfoque consiste en modificar la llamada de función en el archivo gitClone.groovy para incluir un valor por defecto para el parámetro “url”:

    def call(credentials, url = null, project, branch, path, refs, noTags=false, timeout=20) {
        // cuerpo de la función
    }
    

    Entonces, en el archivo de prueba, se puede pasar el parámetro “url” explícitamente al llamar a la función:

    gitClone.call(credentials, url: "https://www.google.com/", project: "project", branch: "branch", path: "path", refs: "refs")
    

    Una vez que la variable “url” esté correctamente asignada, la prueba debería ser capaz de crear un objeto URL válido y pasar la verificación de validación.

Comments are closed.