Desertbit/grumble

From NovaOrdis Knowledge Base
Jump to navigation Jump to search

External

Internal

Overview

Unit Testing Commands

These options do not capture the command output, just side effects:

Option 1

command := somepackage.SomeCommand(...)
app := grumble.New(&grumble.Config{Name: "test"})
app.AddCommand(command)
args := []string{
    "somecommand",
    "--arg1", "test1",
    "--arg2", "test2",
}
err := app.RunCommand(args)

Option 2

flags := map[string]*grumble.FlagMapItem{
	"arg1":    flagValue(arg1),
	"arg2":    flagValue(arg2),
}
ctx := &grumble.Context{
	Flags:   flags,
	Context: context.Background(),
}
command := somepackage.SomeCommand(...)
err := command.Run(ctx)

Capture and Test Output