Blog (215)
Komentarze (2.8k)
Recenzje (1)

Konfigurujemy Unit Test w Universal Windows Platform

Strona główna@djfoxerKonfigurujemy Unit Test w Universal Windows Platform
01.06.2016 01:49

Do każdego projektu w Universal Windows Platform możemy dodać test jednostkowy, niezbędny do dewelopingu nowych rzeczy, czy naprawy błędów.

Taki test zapewne w wielu przypadkach będzie wymagał dodania konfiguracji, aby nie hardcodować na sztywno parametrów niezbędnych do działania (np. danych do logowania). W tym celu można podać potrzebne parametry (klucz -wartość) w pliku, z którego będą zaczytywane niezbędne informacje podczas uruchomienia Unit Testu.

Taki plik jest niezależny od kodu, a zatem nie musi być dorzucany do otwartego repozytorium. Dzięki temu poufne dane, jak np. login i hasło do konta na dobrychprogramach, które pozwalają na testowanie DePeszy, nie będą udostępniane na zewnątrz. Zatem do dzieła!

Plik z parametrami w XML - konfiguracja

Plik z parametrami klucz - wartość jest następującym w formacie XML :

bDUieMFz
        

Łączymy go z testami w naszej solucji za pomocą menu w Visual Studio w Test->Test Settings i Select Test Settings File. Umieściłem go w projekcie djfoxer.dp.notification.Test jako plik test.runsettings, z wyłączeniem z Gita.

217464

Od tej chwili uruchomiony test będzie wiedział skąd ma pobierać dane konfiguracyjne.

Użycie danych w testach

Teraz w kodzie odwołujemy się do danych w XML za pomocą zmiennej Properties w obiekcie TestContext w klasach testowych (TestClass):

bDUieMFF

TestClass public class UnitTest1 { private static TestContext testContext; private static DpLogic logic = null;

ClassInitialize public static void SetupTests(TestContext testContext) { testContext = testContext; logic = new DpLogic();  }

TestMethod private voidLogin() { Tuple success = null;

bDUieMFG

Task.Run(async () => { success = await logic.SetSessionCookie( testContext.Properties"dpTestLogin".ToString(), testContext.Properties"dpTestPassword".ToString() );  }).GetAwaiter().GetResult();

Assert.AreNotEqual(success.Item1, false);

}

} /code

bDUieMFH

Elegancko i bez zbędnych poufnych danych w kodzie. Kod łatwy do dowolnej parametryzacji, bez zmian w kodzie, z zachowaniem bezpieczeństwa. Oczywiście pamiętajmy, aby pliki XML z danymi dodać do ignorowanych w konfiguracji repozytorium.

DePesza dostępna jest w markecie Windows 10 (desktop i mobile). Bezpośredni link: DePesza.

Aktualne źródła można znaleźć na GitHub pod adresem: https://github.com/djfoxer/dp.notification

bDUieMGv