Návod/Testy

Z RoboCupTP wiki

Prejsť na: navigácia, hľadanie

Ako je popísané v príslušnej časti, počas behu test frameworku sa na pozadí vykonávajú testy zaradené do fronty. Úlohou týchto testov je vytvoriť určitú hernú situáciu, nechať agenta konať a po dosiahnutí výsledku (splnení kritérií na ukončenie testu) skončiť s určitým výsledkom.

Testy sú implementované v triedach dediacich od TestCase. Základný princíp spočíva v implementácii metódy isStopCriterionMet, ktorá má vrátiť true ak test skončil, a metódy evaluate, ktorá má vrátiť výsledok testu ako objekt triedy TestCaseResult. Tá momentálne obsahuje len jednu double hodnotu.

Skončenie testu sa dá sledovať pomocou observeru ITestCaseObserver.

Testy zobrazené v GUI sú zapísané v triede TestCaseList. Táto nepracuje priamo s testami, ale s ich dodatočnými triedami, ktoré tieto testy obaľujú. Tie slúžia na automatizovanie spustenia viacerých vykonaní toho istého testu po sebe, a vrátenie nejakého súhrnného výsledku (väčšinou minimum alebo maximum). Príkladom je napríklad trieda KickDistance, používajúca test KickDistanceTest. Z týchto obalových tried sa však nedá v kóde nejak rozumne zistiť, kedy skončili, svoj výsledok len logujú.

Jedným z problémov testov je, že niektoré z nich počítajú s prítomnosťou agenta s určitým menom tímu, a celkovo nie sú dosť robustné pre vysporiadanie sa s nečakanými situáciami. Preto by bolo vhodné do triedy AgentManager implementovať neajkú metódu, ktorá by pripravila čisté prostredie pre vykonávanie testu (odstránenie všetkých iných agentov, nastavenie hernej situácie, ...) a vrátila agenta vhodného pre beh testu, aby to nemusel každý jednotlivý test robiť po svojom (okrem špecifík potrebných pre daný test).

Osobné nástroje