Open Rivixer opened 1 year ago
Pisania kodu nie będzie dużo, ale trzeba opracować plan jak to zrobić.
Naszym celem jest wywołanie na obiekcie GameScene
(a przynajmniej na razie) poniższej funkcji:
https://github.com/Rivixer/WZIMopoly/blob/c1e78ba856968e1680875a2ab35be8b1a8497b7a/WZIMopoly/Controllers/IPrimaryController.cs#L11-L17
Testy powinny przejść, jeśli wszystkie grafiki załadują się poprawnie. Jeśli choć jedna grafika nie załaduje się i wywali wyjątek, reszta testu nie musi być kontynuowana.
Trudność tego zadania polega na tym, że musimy zmockować obiekt ContentManager
(co wiąże się też z innymi mockami klas, które ten manager wymaga), aby udawało, że ładuje te grafiki.
Kolejnym problemem jest System.InvalidOperationException: No Graphics Device Service?. Występuje on podczas ładowania grafik, gdy nie mamy sprecyzowanego urządzenia graficznego (czyli np. właśnie podczas testów). Proponowane przeze mnie możliwe obejścia (ale nie wiem czy zadziałają):
Load(ContentManager)
, aby wywoływana była w try-catch, i w przypadku pojawienia się wyjątku No Graphics Device Service - kontynuować testy (ten błąd wyskakuje jak już grafika się załaduje, co nas interesuje)Przetestować, czy testy przechodzą na Linuxie.
Od commita 4db12725d16a7950e4d527076120dfe31ea1ec30 doszło ładowanie dźwięków. Możliwe, że podczas próby załadowania ich podczas testów wyskoczy inny wyjątek, np. związany z brakiem karty dźwiękowej. Należy zwrócić na to uwagę i w razie czego wymyślić sposób na obejście tego.
Oczekuje na:113
115
Napisać testy jednostkowe, które sprawdzą, czy wszystkie grafiki, czcionki itp. ładują się poprawnie.
Zadanie bardzo wymagające, zapewne dla kilku osób. Możliwe, że deweloperzy będą potrzebni do zmodyfikowania kodu w celu łatwiejszego testowania.