Wątek przeniesiony 2021-09-16 09:51 z Inne języki programowania przez cerrato.

Testowanie w Golangu.

0

Uczę się Golangu - w ramach ćwiczeń, piszę sobie skrypt do generowania jarów w Javie. Mam metodę, która w argumentci przyjmuje ścieżkę do pliku, otwiera plik z propertiesami i zwraca jakąś tam wartość która się w nim znajduje.

func (reader *Reader) Read(projectPath string) (string, error) {
	filename := projectPath + "/" + ENV_FILE_NAME
	file, err := os.Open(filename)

	if err != nil {
		return "", errors.Read{Path: filename}
	}

	defer file.Close()

	profile, err := readProfile(file)

	if err != nil {
		return "", errors.Jar{Path: projectPath}
	} else {
		return profile, nil
	}

}

Jak teraz zmockować os.Open żeby zwróciło mi zmockowany obiekt? Wiem jak stowrzyć zmockowany obiekt, natomiast nie wiem jak go przekazać żeby został on zwrócony przez os.Open. Podobną sytuację mam gdy np. chcę zmokować exec.Command.

0

Problem rozwiązany: wyciągnąłem os.Open jako pole w strukturze, dodałem interfejs i w przypadku testowania - wprowadzam fake'ową implementację interfejsu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1