Ustawianie zmiennych środowiskowych procesu - testy
Po przydługowamy opisie tego co daje nam Windows przyszła chwila na trochę kodu. Jako, że jednym z celów tego projektu jest poznanie nieznanego postanowiłem wykorzystać F#-a (http://fsharp.org/), czyli funkcjyny język z rodziny .NET.
W czasie pracy staram się wykorzystywać TDD i nie inaczej będzie w przypadku Pathera. Jeśli chodzi o technologię to wybór padł na xUnit oraz FsUnit. Oprócz bibliotek potrzebować będziemy także programu, którego zmienne środowiskowe będą zmieniane. W tym celu napisałem malutki program (również w F#), pozwoli sobą sterować (poprzez standardowe wejście/wyjście) dzięki czemu możliwe będzie napisanie testów:
Komunikacja wygląda następująco:
- Program odczytuje jeden znak ozaczający polecenie do wykonania (
E
- echo,S
-> ustawienie zmiennej,R
-> odczytanie zmiennej) - W zależności od polecenia odczytywane są kolejne parametry - każdy w oddzielnej linii
- Odpowiedź jest odsyłana w formie pojedynczej linii
Po stronie testów korzystne będzie napisanie kilku funkcji, które pozwolą na wygodne sterowanie programem pomocniczym:
Te kilka funkcji pozwoli na napisanie pierwszych testów w bardzo przejrzysty sposób:
Szczęśliwe po uruchomieniu uzyskujemy dwa zielone testy potwierdzające, że nasz proces pomocniczy działa i będziemy mogli przetestować ustawianie zmiennych środowiskowych z innego procesu.
Ten post zakończy się dwoma testami przedstawiającymi końcową funkcjonalność:
Jako, ze implementacja funkcji RemoteProcess.readPath
i RemoteProcess.setPath
wykonujących to czego potrzebujemy jest rozbudowana, będą one tematem następnego posta.