Using FizzBuzz as an example. main_test.go package main import "testing" import "github.com/stretchr/testify/assert" func Test_run(t *testing.T) { fb := run(1,15) assert.Equal(t, "1,2,Fizz,4,Buzz,Fizz,7,8,Fizz,Buzz,11,Fizz,13,14,FizzBuzz", fb) } main.go package main import "fmt" import "strconv" import "strings" func main() { fmt.Println("FizzBuzz Test") } func run(N int, M int) string { out := []string{} for i := N; i<=M; i++ { out = append(out, fizzbuzz(i)) } return strings.Join(out, ",") } func fizzbuzz(n int) string { switch { case (n % 3 == 0) && (n % 5 ==0): return "FizzBuzz" case n % 3 == 0: return "Fizz" case n % 5 == 0: return "Buzz" default: return strconv.Itoa(n) } } go.mod module fizz go 1.18 require ( github.com/davecgh/go-spew v1.1.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect ...