Geldmann3
2021-09-16, 17:04:57
Hallo zusammen,
gerade habe ich eine supereinfache Test-Applikation in Golang geschrieben, im Prinzip habe ich 2 Packages, das Main Package und ein ,,server.go" Package, welches lediglich eine StartServer() Funktion hat, die zurzeit nichts weiter tut, als ,,Starting server at port 8080\n" auf der Konsole auszugeben.
package server
import "fmt"
func StartServer() {
fmt.Printf("Starting server at port 8080\n")
}
Nun Frage ich mal ganz pedantisch, angenommen, das sollte von der Funktionsweise so bleiben, schreibt man für sowas einen Unit-Test und wenn ja, wie? Ich müsste ja im Prinzip testen, ob
fmt.Printf("Starting server at port 8080\n")
ausgeführt wurde, bzw, ob die entsprechende Nachricht auf der Konsole ausgegeben wurde.
Kann ich in einer ,,TestStartServer" Funktion irgendwie testen, ob die Ausgabe stattgefunden hat, was ist hier best practice? Oder sollte ich sogar sowas wie ein Printer-Interface bauen, dieses Mocken und dann Expectations auf diesen Mock schreiben? Z.b. mit Gomock. Das erscheint mir für so etwas einfaches allerdings, wie mit einer Kanone auf Spatzen zu schießen. :D
Im Prinzip will ich sicherstellen, dass die Funktion ,,StartServer" immer "Starting server at port 8080\n" printed, egal, was ich in Zukunft an der Funktion verhunze.
gerade habe ich eine supereinfache Test-Applikation in Golang geschrieben, im Prinzip habe ich 2 Packages, das Main Package und ein ,,server.go" Package, welches lediglich eine StartServer() Funktion hat, die zurzeit nichts weiter tut, als ,,Starting server at port 8080\n" auf der Konsole auszugeben.
package server
import "fmt"
func StartServer() {
fmt.Printf("Starting server at port 8080\n")
}
Nun Frage ich mal ganz pedantisch, angenommen, das sollte von der Funktionsweise so bleiben, schreibt man für sowas einen Unit-Test und wenn ja, wie? Ich müsste ja im Prinzip testen, ob
fmt.Printf("Starting server at port 8080\n")
ausgeführt wurde, bzw, ob die entsprechende Nachricht auf der Konsole ausgegeben wurde.
Kann ich in einer ,,TestStartServer" Funktion irgendwie testen, ob die Ausgabe stattgefunden hat, was ist hier best practice? Oder sollte ich sogar sowas wie ein Printer-Interface bauen, dieses Mocken und dann Expectations auf diesen Mock schreiben? Z.b. mit Gomock. Das erscheint mir für so etwas einfaches allerdings, wie mit einer Kanone auf Spatzen zu schießen. :D
Im Prinzip will ich sicherstellen, dass die Funktion ,,StartServer" immer "Starting server at port 8080\n" printed, egal, was ich in Zukunft an der Funktion verhunze.