Rivixer / WZIMopoly

A group student project for the Software Engineering course - a Monopoly style game with faculty-themed elements
Other
9 stars 1 forks source link

Tests for loading content #114

Open Rivixer opened 1 year ago

Rivixer commented 1 year ago

Oczekuje na:

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.

Rivixer commented 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ą):

Przetestować, czy testy przechodzą na Linuxie.

Rivixer commented 1 year ago

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.