dimanche 15 novembre 2015

How to test multiple-values in Golang?

The following function returns a multiple-value:

package main

import (
    "flag"
    "fmt"
)

func main() {
    passArguments()
}

func passArguments() (string, string) {
    username := flag.String("user", "root", "Username for this server")
    username2 := flag.String("user2", "root", "Username for this server")

    flag.Parse()

    fmt.Printf("Your username is %q.", *username)
    fmt.Printf("Your username is %q.", *username2)

    usernameToString := *username
    usernameToString2 := *username2

    return usernameToString, usernameToString2
}

Aim: to test multiple-values in Golang


Attempt

package main

import (
    "os"
    "testing"
)

func TestArgs(t *testing.T) {
    expected := "bla"

    os.Args = []string{"cmd", "-user3=bla2"}

    actual := passArguments()

    if actual != expected {
        t.Errorf("Test failed, expected: '%s', got:  '%s'", expected, actual)
    }
}

results in: multiple-value passArguments() in single-value context

Aucun commentaire:

Enregistrer un commentaire