Ctrl K
ComunidadGuías…

app_test.go

Rama master · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
package main

import (
	"bytes"
	"testing"

	"github.com/stretchr/testify/assert"
)

func TestRun(t *testing.T) {
	cases := []struct {
		name     string
		args     []string
		wantCode int
		stdout   string // substring expected on stdout
		stderr   string // substring expected on stderr
	}{
		{"version", []string{"version"}, 0, "Version: ", ""},
		{"unknown command", []string{"bogus"}, 2, "", "unknown command"},
		{"unknown flag", []string{"--nope"}, 2, "", "not defined"},
	}
	for _, c := range cases {
		t.Run(c.name, func(t *testing.T) {
			var stdout, stderr bytes.Buffer
			code := run(c.args, &stdout, &stderr)
			assert.Equal(t, c.wantCode, code)
			assert.Contains(t, stdout.String(), c.stdout)
			assert.Contains(t, stderr.String(), c.stderr)
		})
	}
}