github.com/UlisseMini/utils@v0.0.0-20181216031219-f016c7ea9463/test/test_test.go (about)

     1  package test_test
     2  
     3  import (
     4  	"fmt"
     5  	"os"
     6  	"os/exec"
     7  	"testing"
     8  	"utils/test"
     9  )
    10  
    11  func init() {
    12  	err := os.Chdir("./testdata")
    13  	if err != nil {
    14  		fmt.Println(err)
    15  		os.Exit(1)
    16  	}
    17  
    18  	cmd := exec.Command("go", "build", "one.go")
    19  	err = cmd.Run()
    20  	if err != nil {
    21  		fmt.Println("failed to build ./testdata/one.go")
    22  		os.Exit(1)
    23  	}
    24  
    25  	cmd = exec.Command("go", "build", "two.go")
    26  	err = cmd.Run()
    27  	if err != nil {
    28  		fmt.Println("failed to build ./testdata/two.go")
    29  		os.Exit(1)
    30  	}
    31  }
    32  
    33  func Test_test(t *testing.T) {
    34  	tc := test.Case{
    35  		Path:     "./one",
    36  		Expected: "one",
    37  	}
    38  
    39  	err := tc.Run()
    40  	if err != nil {
    41  		t.Fatal(err)
    42  	}
    43  
    44  	tc = test.Case{
    45  		Path:     "./two",
    46  		Expected: "one",
    47  	}
    48  
    49  	err = tc.Run()
    50  	if err == nil {
    51  		t.Fatal("expected an error got nil")
    52  	}
    53  
    54  	epErr := `Expected "one" got "two"`
    55  	if err.Error() != epErr {
    56  		t.Fatalf("expected %q got %q", epErr, err.Error())
    57  	}
    58  }