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.

¿Cómo hacer pruebas unitarias simuladas para una función de Golang que llama a un servicio de AWS varias veces con diferentes métodos?

Tengo la siguiente función que realiza múltiples llamadas a AWS IAM. Puedo ejecutar pruebas unitarias en llamadas individuales. Sin embargo, cuando ejecuto una prueba en la siguiente función, obtengo un error de pánico: “error de tiempo de ejecución, memoria no válida o referencia de puntero nula”

func (iamDependency *iamService) CreateMyUser(userName string) (string, error){

// primer llamada a IAM
err:=iamDependency.GetUser(&iam.GetUserInput{UserName: userName})

if err != nil {

  fmt.Println("error al obtener el usuario, intentando crear")

  // segunda llamada a IAM
  err:=iamDependency.CreateUser(&iam.CreateUserInput{UserName: userName})

  if err != nil {
    log.Fatalf("error al crear usuario\n", err )
  }


}
}

Aquí está mi simulacro y prueba:

type mockSomeOutput{}

type mockedIamCall{
  iamiface.IAMAPI
  Response mockSomeOutput
}

func TestCreateMyUser(t *testing.T){
  t.Run("Creación de usuario exitosa", fun(t *testing.T){
    mo:= mockOutput{}

m:= mockedIamCall{Response: mo}

d:= iamService{
  iamInstance: m,
}


mockedUser:="TestUser"

_, err:= d.ResetCredentials(&mockedUser)

if err != nil {
     t.Fatal("Todo debería estar bien")
   }
  })
}

Me pregunto si hay algún truco o pautas para hacer pruebas unitarias para este tipo de función en Golang.

Aprecio cualquier ayuda.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que estás enfrentando un error de tiempo de ejecución al ejecutar tu prueba unitaria. Es posible que el problema esté relacionado con el objeto simulado que estás utilizando. Es importante asegurarse de que el objeto simulado esté configurado correctamente y que se hayan implementado todos los métodos necesarios. Además, es importante asegurarse de que el objeto simulado esté inicializado correctamente y que se pasen correctamente todos los parámetros necesarios. También es posible que el problema esté relacionado con la forma en que se escribió la función. Es importante asegurarse de que se realicen todas las comprobaciones necesarias y de que la función maneje correctamente los errores.

Comments are closed.