W&T conecta
Interfaces para TCP/IP, Ethernet, RS-232, RS-485, USB, 20mA, fibra óptica de vidrio y de plástico, http, SNMP, OPC, Modbus TCP, I/O digital, I/O analógico, ISA, PCI

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

Tres ciclos: Rojo, Verde, Revisar
  • 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

Crear un nuevo proyecto en Lite-IDE

  1. 1 Pulse la opción "Nuevo" o seleccione el punto "Nuevo" del menú "Archivo".

  2. 2 Seleccione "Go1 Command Project"

  3. 3 Asigne un nombre al proyecto, por ejemplo "litetutorial"

Crear un nuevo proyecto en Lite-IDE

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 paquete testing 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 un testing.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ón fmt.Printf() o la función C printf() 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

Compilación cruzada desde Lite-IDE

  • 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.

Ir arriba