Go 단위 테스트에서 명령줄 플래그 유효성 검사
명령줄 플래그를 사용하여 형식 유형을 구성하는 다음 코드를 고려하세요.
<code class="go">// ... elided for brevity ...</code>
-format 플래그가 예상 값으로 설정되었는지 확인하기 위해 단위 테스트를 수행할 수 있습니다. 작성되었습니다. flag.Var 함수를 사용하면 플래그 처리를 사용자 정의할 수 있으므로 플래그 값에 대한 유효성 검사와 더 많은 제어가 가능합니다.
사용자 정의 플래그 처리는 Value 인터페이스를 구현하여 수행됩니다.
<code class="go">type formatType string func (f *formatType) String() string { return fmt.Sprint(*f) } func (f *formatType) Set(value string) error { // Validation logic here }</code>
이를 형식 플래그에 적용:
<code class="go">var typeFlag formatType func init() { // ... elided for brevity ... flag.Var(&typeFlag, "format", "Format type") flag.Var(&typeFlag, "f", "Format type (shorthand)") }</code>
사용자 정의 플래그 유효성 검사를 단위 테스트하려면 다음 접근 방식을 고려하세요. flag_test.go:
<code class="go">func TestCustomFlag(t *testing.T) { // Setup test environment origArgs := os.Args // Define custom flag type type myFlag int flag.Var((*myFlag)(nil), "customflag", "Custom flag") tests := []struct { origArgs []string expValue int expOutput string }{ // ... test cases ... } for _, test := range tests { os.Args = test.origArgs // Parse flags flag.Parse() // Check flag value if flagValue := flag.Lookup("customflag").Value.(myFlag); flagValue != test.expValue { t.Errorf("Expected %v, got %v", test.expValue, flagValue) } // Restore args os.Args = origArgs } }</code>
요약하자면, flag.Var 함수를 사용하면 설정된 패턴에 따라 단위 테스트할 수 있는 플래그 값의 사용자 정의 및 유효성 검사가 가능합니다.
위 내용은 Go에서 사용자 정의 명령줄 플래그 유효성 검사를 단위 테스트하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!