Write integration tests in Go by creating a _test.go file in your package, importing testing, and defining functions starting with Test that exercise your code's interaction with external systems or complex setups.
package mypkg
import (
"os"
"testing"
)
func TestIntegrationExample(t *testing.T) {
// Setup: Create a temporary file for the test
tmpFile, err := os.CreateTemp("", "test-*.txt")
if err != nil {
t.Fatal(err)
}
defer os.Remove(tmpFile.Name())
// Exercise: Write data and read it back
_, err = tmpFile.WriteString("hello")
if err != nil {
t.Fatal(err)
}
tmpFile.Close()
data, err := os.ReadFile(tmpFile.Name())
if err != nil {
t.Fatal(err)
}
// Verify: Check the result
if string(data) != "hello" {
t.Errorf("expected 'hello', got %q", string(data))
}
}