Desarrollo de software para la pure.box
Desarrollo mediante tests de aplicaciones Go
en LiteIDE
LiteIDE es un entorno de programación libre, disponible para todos los sistemas operativos - diseñado para el trabajo diario con Go. Además de la realización de test automatizados y el debugg con delve o con gdb, facilita también la compilación independiente del tipo de plataforma. Este tutorial explica el desarrollo de aplicaciones en Go mediante test. Para ello se crea un pequeño programa que suma dos cifras entre sí.
Introducción: El ciclo de desarrollo mediante tests
-
1. Rojo: todo comienza con un test fallido
Puede ser la implementación de un nuevo elemento o la fijación de un fallo: el primer paso siempre es escribir un test. Al no existir ningún código de producción, ese naturalmente falla.
-
2. Verde: nuevo código cumple el test
Ahora se escriben exactamente tantos códigos de producción como sean necesarios para ejecutar el test correctamente. El código no tiene por qué ser especialmente bonito, pero tiene que aportar una solución lo más sencilla posible para el problema parcial.
-
3. Revisar: asegurar la legibilidad y la mantenibilidad
En el último paso se depura, reedita y comenta al detalle el código de producción. Se trata de hacer legible y mantenible el código generado.
Tras varias repeticiones en este ciclo se habrán generado voluminosas recopilaciones de tests. Para el desarrollo de nuevos elementos se ejecutan todos los tests. De este modo se determina un estrecho marco para nuevas partes del programa que, en general, conduce a códigos de alta calidad.
Preparación: Instalación del entorno de desarrollo
¿Ya ha instalado go? Si no es el caso, por favor, lleve a cabo primero las instrucciones del tutorial: "Primeros pasos en Go" (Windows) (Linux).
Descargue LiteIDE para su sistema operativo desde Sourceforge o instálelo a través de su gestor de paquetes. LiteIDE puede ser descomprimido en un directorio cualquiera y arrancado desde allí. Aunque ya trae consigo todas las herramientas necesarias, se recomienda instalar otros programas y bibliotecas para ampliar la funcionalidad:
Guru
go get -u golang.org/x/tools/guru
go install golang.org/x/tools/guru
Golint
get -u github.com/golang/lint/golint
go install github.com/golang/lint/golint
Delve
go get -u github.com/derekparker/delve
go install github.com/derekparker/delve
Crear un proyecto
1 Pulse la opción "Nuevo" o seleccione el punto "Nuevo" del menú "Archivo".
2 Seleccione "Go1 Command Project"
3 Asigne un nombre al proyecto, por ejemplo "litetutorial"
El nuevo proyecto creado contiene ya dos archivos: El archivo go.doc 1 , para la documentación del proyecto y el archivo abierto en la ventana del editor main.go 2 , en el que IDE ha escrito un programa Hello World.
1. Rojo: crear y ejecutar un test
Siguiendo el principio "Ninguna línea de código sin un test fallido", en un primer paso se crea un test para la función Add(a,b). Si se abre Go-Tool con el comando go test
, busca en los archivos que terminan en _test.go las funciones que comienzan con un Test escrito en mayúsculas.
Por tanto, debe crear el archivo litetutorial_test.go
package main
import "testing"
func TestAdd(t *testing.T) {
a,b := 2, 3
want := 5
result := Add(a, b)
if result != want {
t.Errorf("Error in Addition: %d + %d = %d ", a, b, result)
}
}
-
Línea 1:
Desea crear un archivo ejecutable. Por lo tanto, el paquete en el que trabaja es el paquete main. -
Línea 3:
Para escribir un test, utilice el paquetetesting
de la biblioteca estándar. -
Línea 5:
Una función que comienza con Test, será ejecutada como test. Como parámetro se transmite a la función un Pointer en untesting.T-Objekt
. -
Línea 11:
Si se abre la función,t.Errorf()
el test falla.t.Errorf()
funciona de forma similar a la funciónfmt.Printf()
o la función Cprintf()
o se le transfiere un string de formato, así como diversos valores para la salida.
El test se inicia con el botón "T" del margen superior de la pantalla o con la combinación de teclas Ctrl+T. Como a función Add(a,b)
no existe, el test resulta fallido.
C:/Go/bin/go.exe test -v [C:/Users/Gopher/go/src/litetutorial]
=== RUN TestAdd
--- FAIL: TestAdd (0.00s)
liteIDE_test.go:12: Error in Addition: 2 + 3 = -1
FAIL
exit status 1
FAIL litetutorial 0.019s
Fehler: Prozess beendet mit Rückgabewert 1.
2. Verde: Implementar el código de producción y probar de nuevo.
Al haber fallado el test, ahora se puede implementar la función Add(a,b)
. Para estructurar la base del código se guarda la función calcfunctions.go
en el archivo.
package main
func Add(a, b int) int {
var result in
result = a + b
return result
}
Al iniciar de nuevo el test con las teclas Ctrl+T, este se ejecuta correctamente.
3. Depurar
Normalmente se subestima la importancia de la última fase del desarrollo mediante test: la depuración. En esta fase se reedita el código de modo que al final sea perfectamente legible y mantenible. El código del programa queda reducido a lo esencial y comentado:
//Add returns the sum of to integers a and b
func Add(a, b int) int {
return a+b
}
Un test realizado muchas veces funciona sin errores. La función puede ser incorporada al programa litetutorial.go
principal.
package main
import "fmt"
func main() {
a := 2
b := 3
sum := Add(a, b)
fmt.Println(a, "+", b, "=", sum, "\n")
}
Con un test para la substración se puede iniciar ahora un nuevo ciclo de desarrollo.
Compilación del programa para pure.box
1 Seleccione en la selección del sistema "cross-arm5"
2 Con un clic en el símbolo B compila el programa
3 A continuación se dispone del archivo ejecutable en el directorio del proyecto.
Como se ha indicado en el tutorial "Primeros pasos en Go", el Binary final puede ser cargado en la pure.box vía FTP, Samba o SCP y ejecutado.