GoLang의 종속성 주입으로 디버깅을 간편하게
함수에서 종속성을 제거하면 테스트를 보다 간단하게 수행할 수 있으므로 디버그하기가 더 쉬워집니다.
종속성 주입을 더 잘 이해하기 위해 테스트 기반 개발을 사용하는 예제가 표시됩니다.
예시
단일 사용자 정보를 포함하는
user.json
라는 파일이 있고 함수를 통해 나이를 얻고 싶다고 가정합니다.데이터 구조
// user.json
{
"age": 34
}
기능
type User struct {
Age int `json:"age"`
}
// GetUserData opens a file and returns a piece of data
func GetUserData(fPath String) (String, error) {
userFile, err := os.Open(fPath)
if err != nil {
fmt.Println(err)
}
byteValue, _ := ioutil.ReadAll(userFile)
var u User
json.Unmarshal(byteValue, &u)
return u
}
테스트 기능
func TestGetUserData(t *testing.T) {
t.Parallel()
got, _ := GetUserData("../test/resources/user.json")
s := fmt.Sprint(got)
if s == "" {
t.Errorf("Wanted %s got %s", got, s)
}
}
종속성
위의 기능이 작동하고 테스트도 작동합니다. 그러나 다음과 같은 종속성이 도입되었습니다.
continue reading...
Reference
이 문제에 관하여(GoLang의 종속성 주입으로 디버깅을 간편하게), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/toul_codes/dependency-injection-write-code-that-s-easier-to-debug-18ob텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)