特定のコマンド ライン フラグが列挙内にあることを確認する単体テストが必要です。
テストを書きたいコードは次のとおりです。
var formatType string
const (
text = "text"
json = "json"
hash = "hash"
)
func init() {
const (
defaultFormat = "text"
formatUsage = "desired output format"
)
flag.StringVar(&formatType, "format", defaultFormat, formatUsage)
flag.StringVar(&formatType, "f", defaultFormat, formatUsage+" (shorthand)")
}
func main() {
flag.Parse()
}
目的のテストは、-format が上記の const 値のいずれかに等しい場合にのみ合格します。この値は、formatType で使用できます。正しい呼び出しの例: program -format text
望ましい動作をテストする最良の方法は何ですか?
注:言い方が悪いのかもしれませんが、表示されたコードは単体テスト自体ではなく、単体テストを書きたいコードです。これは私が書いているツールの簡単な例であり、ツールへの有効な入力をテストする良い方法があるかどうかを尋ねたかった.