• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    TENCOKACISTROMYProgramovani v C#, F# a dalsich jazycich pro .NET, Mono a ostatni CLI implementace
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    BUTHRAKAUR: Tak ono jde o scenar kdy ten test delas. Jestli pri vytvareni nove funkcionality nebo pri refactoringu (kdyz testy na refactorovanou ficuru neexistuji).

    Ja netestuju vsechno. Je hromada veci, pro ktery to nema smysl (napr. obycejny getery, settery) a pri rozsirovani funkcionality proste nekde pribyde metoda, ktera by si ale test uz zaslouzila. Prijde mi pohodlnejsi si tam napsat signaturu ty metody, do ni hodit NotImplementedException a nechat si pro ni vygenerovat torzo testu nez naopak.

    Postup "vytvorit nezkompilovatelnej test, nechat ho nezkompilovat, pak vytvorit metodu, dosahnout tak zkompilovatelnyho testu, a ted teprve psat test" mi prijde zbytecne komplikovanej. Krok 1 a 2 imho muzu rovnou preskocit. Protoze tim neziskam.

    Nemyslim si, ze bych timhle postupem neco realne zlepsil nebo zhorsil Prijde mi to spis, ze to je o osobnich preferencich. Vysledek je imho shodny.

    Tim prejmenovanim metody jsem mel na mysli, ze kdyz v projektu prejmenuju metodu, tak chci aby se mi prejmenovala i uvnitr testu. Cili ne nazev toho testu. Takze kdyz bych k tomu pristupoval pres "dynamic" tak by pri automatickym refactoringu k prejmenovani toho volani v testu nedoslo.

    U testovani privatnich clenu - religiozne spravne by se to nemelo delat. Nicmene nekdy scope dotycny metody je private/protected/internal a ne public z duvodu architektury systemu. Pricemz ale character ty metody je takovy, ze by si ten test zaslouzila. Co pak? Imho je lepsi se "nejak dobouchat" na tu metodu a udelat na ni test, nez ten test nedelat. A nebo tu metodu udelat public a pak se snazit pres dokumentaci prijmout "verejnost" aby ji nepouzivala.
    BUTHRAKAUR
    BUTHRAKAUR --- ---
    TENCOKACISTROMY: ale ze ti test v prvotni fazi nejde zkompilovat, je prece dle TDD spravne - aspon si lip promyslis design :) Potom R# Alt+Enter => vytvorit tridu/metodu atd. S tim neni zadnej problem - zadna velka rucni prace neni nutna. Kdyz zacinas testem, tak proste strukturu trid teprve vymejslis. Testovani privatnich metod je ponekud zvlastni pozadavek a vytvareni mockovacich trid od dob, co existujou dynamicky mockovaci frameworky, taky... Prejmenovavani metod vs test metod taky nechapu - nazev test metody ma prece popisovat, o co v testu jde a nemusi tak s nazvem real metody vubec souviset.

    Ale evidentne zastavame kazdej dost odlisnej pristup k testovani atd - ja tyhle MS auto-generovaci opicarny nikdy nechapal. Nastroje typu R# na rychly psani kodu bohate stacej a ty MS zabudovany veci ostatne i dost vyrazne prekonavaj. Casto dokonce prispivaj i k budovani spatnejch navyku pri vyvoji. Mrkni treba na tohle video o TDD - sice v Jave, ale v .NET je to prakticky o tom samym...
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    ROTTWEILER: Nebo si ty testy muzu psat v notepadu a spoustet a pres prikazovou radku.

    Jasne - exisuje milion a jeden zpusob, jak se tomu vyhnout. Muzu si vytvaret instance a volat metody pres jejich stringovy nazvy. Muzu pouzivat nejaky IoC/DI ktery mi dotycny objekt poskytne nebo vyhodi nejakou rozumnou vyjimku. Muzu to delat ruznejma dalsimu zpusobama - ale vsechny maj jedno spolecny. Je to vic prace, nez je nutny.

    Ale ja pouzivam IDE kvuli tomu, aby mi ulehcovalo praci. Chci aby za me pocitac delal veci, ktery jsou jasne dany jak se maj udelat a jsou automatizovatelny.
    Napriklad kdyz refaktoruju nazev metody, tak chci aby se mi refaktoroval i nazev metody v testech. To samy s poradim parametru. Atd...

    A fakt se mi nelibi kdyz se opousti nejaka funkcionalita, ktera mi ulehcovala zivot. A misto toho to mam delat rucne.
    ROTTWEILER
    ROTTWEILER --- ---
    TENCOKACISTROMY: Můžeš zvolit přístup, že to přetypuješ na dynamic a budeš to v testu volat na něm.
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    BUTHRAKAUR: Vzhledem k tomu, ze C# je silne typovej jazyk, tak nemuzes napsat zkompilovatelnej test na neexistujici metodu. Cili postup - nejprve napsat test, pak vytvorit metodu je v tomhle pripade trochu k nicemu.

    Takze jsem byl zvyklej napsat metodu, do ni dat "throw new NotImplementedException()". Pak napisu test. A vytvoreni testu takhle melo velkou vyhodu v tom, ze to napojilo vsechny potreby reference, vytvorilo to patricnej soubor pro testy dany tridy (pokud neexistoval). V pripade ze jsem chtel testovat nejakou metodu ktera nebyla public, tak to zajistilo vytvoreni mockovaci tridy atd...

    Proste to za tebe udelalo spoustu rutinni prace, kterou tedka musis delat rucne. Pricemz rucne neudelas nic lepsiho - jen ti to dyl trva.
    BUTHRAKAUR
    BUTHRAKAUR --- ---
    TENCOKACISTROMY: vytvareni unit testu pres pravy tlacitko zni dost anti - v cem je to tak prinosny?
    BUTHRAKAUR
    BUTHRAKAUR --- ---
    VIRTUALVOID: ne-https nevadi - jenom musis mit spravne nastavenej ten binding: securitymode=TransportCredentialOnly + transport clientCredentialType=Basic a nastavovat ClientCredentials. Takhle mi to proti osklive Java WS chodi. Je to kazdopadne velikej oser soap-hacking ;(
    VIRTUALVOID
    VIRTUALVOID --- ---
    PJOTRIK: diky. to security mi tam prave nezafungovalo. pozeral som cez fiddler a ten header to neposielalo. problem je mozno aj ten, ze ta sluzba nieje vystavena cez https.

    ja tiez verim ze soap vidim naposledy...
    PJOTRIK
    PJOTRIK --- ---
    VIRTUALVOID: Tak tady jsem z archivu vyhrabal ten Message inspector. Pouziva se to potom
                Client.Endpoint.Behaviors.Add(SessionHandler);
    

    Co jsem ted tak letmo koukal, tak pro http basic auth by bylo rozumnejsi pouzit BasicHttpBinding.Security. Ale to uz je na tobe, s tim nemam zkusenosti a doufam ze k SOAPu uz se nebudu muset vracet.
    VIRTUALVOID
    VIRTUALVOID --- ---
    PJOTRIK: moze byt, vdaka.
    to na co sa pripajam ja webcm od ibm tusim..
    PJOTRIK
    PJOTRIK --- ---
    VIRTUALVOID: takhle presne ne, ale kdysi jsem se pripojoval k Siebel CRM, kde autentikace probihala pres cookie. Pridaval jsem to tam nejak pres MessageInspector, muzu poslat priklad, pokud by sis chtel tu autentikaci dedelavat.
    ANONYM_CZ
    ANONYM_CZ --- ---
    NECROMAN: ja pripadne nasel jeste tenhle prehled a vyber nejdulezitejsich veci:

    What's New in Visual Studio 2012
    http://msdn.microsoft.com/en-us/library/vstudio/bb386063.aspx

    Visual Studio 2012 and .NET Framework 4.5 released to the web! - Jason Zander's blog - Site Home - MSDN Blogs
    http://blogs.msdn.com/b/jasonz/archive/2012/08/15/visual-studio-2012-and-net-framework-4-5-released-to-the-web.aspx
    NECROMAN
    NECROMAN --- ---
    BRAP242:
    What's New in Visual Studio 2012 - Developer Tools, Solutions and Resources - wadep - Site Home - MSDN Blogs
    http://blogs.msdn.com/b/wadep/archive/2012/10/10/what-s-new-in-visual-studio-2012.aspx
    What's New in the .NET Framework 4.5
    http://msdn.microsoft.com/en-us/library/ms171868.aspx
    VIRTUALVOID
    VIRTUALVOID --- ---
    konzumoval tu uz niekto prosim vas web sluzbu, ktora bola napisana v jave (nejaky historicky apache axis 1.4 myslim), a vyuzivala http basic auth ?

    z poskytnuteho wsdl som vygeneroval jak cez svcutil tak cez wsdl Reference.cs kod, ale bud mi nefunguje ten spomenuty auth, alebo mi nedeserializuje data (vo fiddlerovi odpoved vidim s datami, v resulte volania nic).
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    BRAP242: lepsi nez jakej prehled?
    Co te mozna nepotesi - ve 2012 nejsou makra a chybi vytvareni unit testu pres pravy tlacitko (musis si tim opruzem vytvareni projit od zacatku az do konce).
    ANONYM_CZ
    ANONYM_CZ --- ---
    doufam, ze Visual Studio 2021 uz bude psat vsechno za me ;)
    BRAP242
    BRAP242 --- ---
    nemate nekdo nejakej lepsi prehled toho, co je novyho ve Visual Studio 2021 a novym .NET FW?
    SIRLOON
    SIRLOON --- ---
    FRANKVFX: tu hru ve flashi a c++ bych bral, za kolik obe? :)
    FRANKVFX
    FRANKVFX --- ---
    Nechcete nekdo tyhle knihy za symbolickou cenu? At se toho zbavim :)

    Rozumíme C++, Andrew koenig, Barbara E. Mood - (stála 370)
    Visual Basic .NET v Kostce, Steven Roman, Ron Petrusha & Paul Lomax - (stála 590)
    Mistrovství v Delphi 6 - (stála 790) - 100 Kč
    Naprogramujte si hru ve Flashi, Jiří Fotr - (stála 200)
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    BUTHRAKAUR: Dobre, dobre, tak ja si to teda vyzkousim ;).
    To API od xUnit vypada pouzitelnejc nez u MSTestu. Par veci mi tam chybi (teda podle ty tabulky), ale v tom nevidim problem. Na to si muzu udelat vlastni metody obalujici to volani.
    Kliknutím sem můžete změnit nastavení reklam