• Welcome to TUKE FÓRUM - Fórum pre študentov Technickej Univerzity v Košiciach.
 

dotNET

Started by tino8, 18.01.2010, 06:08:54

« predchdzajce - alie »

Brand

#100
Ahojte

Ludia, ako ste riesili UnitTesty? Narazil som tu na taky problem...
Ide o to, ze v triede Field mame definovane eventy, konkretne mi ide o DisplayPlaying.
V metode void MoveTile(Tile tile) pri GameState.PLAYING "spustam" tento event.
Problem je v tom, ze nema priradene ziadne delegaty (tie sa priraduju v konstruktore ConsoleUI).
Teda mi test pada na null pointer exception v mieste volania tohto eventu v metode MoveTile.

No a v triede UnitTestField mi to nechce dovolit vytvorit objekt ConsoleUI.

V com je problem?


Tymto to chcem testovat:


[TestMethod]
       public void TestMethod1()
       {
           Field field = new Field(4, 4);
           field.State = GameState.PLAYING;

           field.MoveTile(3, 2);
           field.MoveTile(3, 3);
           
           Assert.AreEqual(GameState.SOLVED, field.State);

       }

Metoda MoveTile(Tile tile):


public void MoveTile(Tile tile)
       {
           int x1 = tile.Col, x2 = greyTile.Col, y1 = tile.Row, y2 = greyTile.Row;

           if ((Math.Abs(x1 - x2) == 1) && (Math.Abs(y1 - y2) == 0)
               ||
               (Math.Abs(x1 - x2) == 0) && (Math.Abs(y1 - y2) == 1))
           {
               GreyTile backupGreyTile = greyTile;
               greyTile.Row = y1;
               greyTile.Col = x1;

               tile.Row = y2;
               tile.Col = x2;

               Tiles[greyTile.Row, greyTile.Col] = backupGreyTile;
               Tiles[tile.Row, tile.Col] = tile;

               if (State != GameState.GENERATION)
               {
                   DisplayPlaying();
               }
               else
               {
                   DisplayGeneration();
               }
               if (IsSolved())
               {
                   State = GameState.SOLVED;
               }
           }
           else
           {
               throw new MoveTileException("Can not move this tile");
           }
       }


Problem vznika tu:


if (State != GameState.GENERATION)
               {
                   DisplayPlaying();
               }


No a DisplayPlaying ma priradene delegat tu:


public ConsoleUI(Field field)
       {
           this.field = field;
           field.DisplayPlaying += UpdateUI;
           field.DisplayGeneration += UpdateUI;
           field.DisplayGeneration += Sleep;
       }


Budem vdacny za akukolvek radu.

Ak je to banalita, tak prepacte, ale neviem si dat rady.

EDIT:

Uz to mam, to je uzasne, ako clovek pride na riesenie, ked to takto pekne niekam napise a to po sebe precita :D.
Staci testovat na NULL a iba v pripade, ze Event ma priradene delegaty, tak ju volat...

dEVIANT

Dig dobre, že hovoríš, ja som si tie Unit testy odkladal na koniec, až som ich zabudol spraviť...idem na to!!  :D
Nie je nič nákazlivejšie ako rozhodný a presvedčením sa vyznačujúci život.

Agamemnon

Quote from: Brand on  23.04.2010, 01:32:59
Staci testovat na NULL a iba v pripade, ze Event ma priradene delegaty, tak ju volat...

toto je spravne, a treba to pouzivat vzdy... bez toho sa delegaty nevyvolavaju!

btw - just a simple idea: co tak priradit v teste tomu delegatu nejaku dummy metodu... alebo mozno ani nie tak dummy a testnut, ci tam dosla dobra hodnota, ak sa nejaka prenasa... alebo testnut, ci sa ten delegat vobec zavolal? a pod :)
All code is crap.

42

Brand

Teraz som chcel zacat 12. cviko a pri vytvarani databazy presne podla ich postupu dostavam tuto hlasku:

This server version is not supported. Only servers up to MS SQL Server 2005 are supported

Teda mi tu databazu ani nevytvori...

Neviem, cim to moze byt. Mam Visual Studio 2008 Professional Edition. U ostatnych ten problem nebol.

Medzi nainstalovanymi programami mam tieto tu suvisiace s SQL:


Microsoft SQL Server 2008
Microsoft SQL Server 2008 Setup Support Files
Microsoft SQL Server 2008 Management Objects
Microsoft SQL Server 2008 Browser
Microsoft SQL Server Database Publishing Wizard
Microsoft SQL Server 2008 Native Client
Microsoft SQL Server VSS Writer

Microsoft SQL Server 2005 Compact Edition
Microsoft SQL Server Compact 3.5 SP1
Microsoft SQL Server Compact 3.5 for Devices
Microsoft SQL Server Compact 3.5 Design Tools


Kedysi som mal nainstalovne Visual Studio Express Edition, moze to byt preto? Predpokladam, ze sa mi tu nieci bije...
Skuste poradit.

Dik

dEVIANT

A máš v tom VS2008 aj service pack 1?

Keď nepôjde tak odinštaluj šetky VS, vyčisti registry atď napr. CCleaner-om, a potom skús znova nainštalovať...
Nie je nič nákazlivejšie ako rozhodný a presvedčením sa vyznačujúci život.

lajos

potrebujem help nikde som nenasiel screeny na zapoctovku a skusku z dotnetu, neverim ze prave na to co mi tak, hori nic nie je, zachrante ma pliiiiiiiiis vopred velka vdaka

CLEMENZAAA

Quote from: lajos on  05.05.2010, 16:42:22
potrebujem help nikde som nenasiel screeny na zapoctovku a skusku z dotnetu, neverim ze prave na to co mi tak, hori nic nie je, zachrante ma pliiiiiiiiis vopred velka vdaka
žiadne screeny neboli a nie sú...

mucko

takze zajtra skuska ... no som zvedavy,ze o com je

dEVIANT

Neviete ako to je s tým .NETom so skúškou, prečo tam je 240 minút a tak? To asi sa tam nadrbeme všetci a potom náš rozdelia dáko či?...Lebo rád by som si dal v ten deň ešte DBS...

Quote from: mucko on  07.05.2010, 00:25:00
takze zajtra skuska ... no som zvedavy,ze o com je

O čom bola? :D
Nie je nič nákazlivejšie ako rozhodný a presvedčením sa vyznačujúci život.

mucko

Nuz teoria a vacsina otazok ohladom interfacov atd... napr. hashtable jake rozhranie... alebo ked mas IEnumerable musis implementovat Enumerator a tak... v podstate lahko tazka pisomka....

Sxx

bola skuska? ja mam 18. v maise a nic skor nebolo ....
a je to test?


mucko

Sxx ty si tretiak? ked hej tak sme mali(tretiaci) taky "nacierno" termin (7.5. v B515) aby sme sa cim skor toho zbavili

Luk1

pocuj mucko a bolo to tak ze ked si sa naucil to co bolo v prednaskach tak to das ? 22 bodov mi treba a normalne sa tej skusky bojim

Za slovensky narod bije mi srdce v hrudi.

Sxx

super! otom termine som nevedel a som tretiak. Dufam ze to dam hned na prvykrat teraz. Nemate neaky help, pls, alebo aspon co bolo


mucko

ja som si nepozrel v podstate ani cele prednasky... boli tam okruhy ohladom Collections a Interfaces... jednu otazku ohladom interface IEnumerable ci treba implementovat getEnumerator() ano treba... dalo sa to naklikat ked sa trosku vyznas do toho ... boli tam priklady o triedach,ktore vypisovali text do consoly... ja som mal v poradi class1 -> virtual, class2 : class1 -> new virtual, class3 : class2 -> override ...
class3 cls3 = new class3();
cls3 = (Class1) cls3;

netreba sa bat... ja som mal zapocet 25 b a vravim,ze o tych kolekciach a interfacoch som nemal ani sajnu a urobil som to na 31b 

mucko

#115
Quote from: Luk1 on  17.05.2010, 20:41:05
pocuj mucko a bolo to tak ze ked si sa naucil to co bolo v prednaskach tak to das ? 22 bodov mi treba a normalne sa tej skusky bojim

kamarat to urobil a viem,ze by ani nedokazal do konzoly vypisat text "ahoj C#"

Edit: mal zapocet ako ty

Edit2: Sxx pozri predoslu stranu tam som pisal tiez... ale v podstate vacsina otazok bolo len okolo kolekcii a interface..  napr ako som uz spominal,ze mas Hashtable a aky interface dedi ci co to bolo

mucko

#116
ale boli to otazky take,ze aj keby som si pozrel tie prednasky tak neviem ci by som to vedel... ale tymi otazkami sa netrapte... tie boli po 1 bode... priklady boli po 3... tie treba spravit a mas pokoj

P.a.i.n.

tento semester som .Net nemal a chcel by som si ho prejsť cez prázdniny  ;)...........aké je heslo do moodlu?  ???

sulo

#118
Na .NETe asi nie je na výber režim "samostatné zadanie" ako na Jave, či?

Brand

Tato moznost je aj na tomto predmete.