• ú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: 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.
    BUTHRAKAUR
    BUTHRAKAUR --- ---
    TENCOKACISTROMY: VS2012 test runner uz ma podporu pro dalsi test frameworky formou pluginu, takze staci jen primo z VS (Tools>Extensions) doinstalovat prislusnou extension.

    Ten xUnit umi assertu mnohem vic prave viz http://xunit.codeplex.com/wikipage?title=Comparisons - napr exceptions se s tim assertujou mnohem lip. Navic je takovej logictejsi mi prijde - nemusis tolik pouzivat atributy (TestClass neexistuje, ctor je TestInitialize, IDisposable misto TestCleanup)..
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    BUTHRAKAUR: Tak ja ten MSTest zacal pouzivat, pac je rovnou built-in ve VS a nemusime nic dalsiho resit. Na tech projektech dela vic lidi, nektery i jen na castecnej uvazek, tak to je celkove jednodusi. Ale pokud mi neco jinyho (treba ten xUnit) prinese vyrazne vic uzitku, nemam problem s prechodem.

    Hlavne bych teda uvital nejaky lepsi assertovani. Hlavne u assertovani podminek u kolekci/json/xml.
    BUTHRAKAUR
    BUTHRAKAUR --- ---
    TENCOKACISTROMY: to oddeleni a treba i spousteni jen jednou za cas je urcite vhodny - muzes pouzit TestCategory atribut. MSTest by s timhle konkretne problem mit nemel, ale jinak jestli mas moznost, tak zvaz prechod na ten xUnit nebo neco jinyho, pze MSTest ma problemy napr s nekterejma app.config specialitama, ty DeploymentItem jsou taky docela zlo a celkove je to takovej chudej test framework ve srovnani s konkurenci - neni moc duvod to pouzivat. Pokud to teda nenadiktuje nejakej managor apod :)
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    DR_Z: Mate i automaticky testy na UI, jo? *zavist* :)
    DR_Z
    DR_Z --- ---
    TENCOKACISTROMY: My jsme integracni testy s MSTest + DB provozovali a nebyl s tim problem. Nedavno jsme zmigrovali na xUnit, ale to nebyla otazka vykonu jako spis extensibility.
    Oddelit unit a integracni (a UI) testy dava urcite dobrej smysl
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    BUTHRAKAUR: No, ona to neni uplne WS. Komunikuje to protobufem primo s tou databazi. Volaji se navzajem v ruznejch connections a izolacnich levelech. Ono to je docela slozity - to tu asi nema smysl do podrobna rozebirat. Slo mi s pis o to, jestli to nekdo na tohle pouziva a jestli s tim ma nekdo dobry/spatny zkusenosti. Treba na co jsem narazil ja je to - ze tyhle testy narozdil od unit testu docela dlouho trvaj (rekneme, ze jeden test pobezi minimalne 10 vterin. spis vic - tak dlouho to vsechno skutecne trva). Takze na integracni testy bych si mel udelat nejspis zvlast projekt, aby se mi nepletly mezi unit testama a nebrzdil mi vyvoj.
    BUTHRAKAUR
    BUTHRAKAUR --- ---
    TENCOKACISTROMY: asi nepsal. Ja to myslel spis obecne - ze psat test az po psani logiky nedava uplne smysl a test pak casto vypada zbytecne.. a nakonec i tak trochu zbytecnej je :)

    TENCOKACISTROMY: neznam presne to tvoje prostredi, ale pokusil bych se izolovane testovat to volani WS a oddelene tu DB cast. Kazdopadne s klasickym pristupem, kdy mas otevrenou transakci pres test a pak rollbacknes bys nemel mit poblem myslim. Druha vec je, kde vezmes tu testovaci DB - to nevim, jestli mas vyreseny, resp. jestli je to soucasti otazky..
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    BUTHRAKAUR: Mam spis koncepcni problem. Jde o to, ze vlastne cely to prostredi se mi z jedny tridy a par objektu rozroste na DB a sitovou sluzbu. Pricemz potrebuju otestovat X situaci, a nektery jsou typu vytvorit pocatecni situaci, nechat spocitat a zapsat, upravit situaci (simulace vstupu od uzivatele), spocitat a zapsat (jeste treba dvakrat). Vysledny data by mely byt zhruba XY.

    A to vsechno bych byl rad, aby se setupovalo nejak rozumne rychle a aby mi to netimeoutovalo na dlouho bezici test apod...
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    BUTHRAKAUR: Cili na takovejhle kus kodu bys psal test?
    clas BlaBlaBlaConverter : IValueConverter {
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture) {
            return (value as bool?).GetValueOrDefault() ? 1 : 0;
        }
        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) {
             return (value as int?).GetValueOrDefault() == 0 ? false : true;
        }
    }

    BUTHRAKAUR
    BUTHRAKAUR --- ---
    TENCOKACISTROMY: integracni MSTesty proti DB + WS pouzivam. Co s tim mas konkretne za problem? Ja jen nesnasim MSTest a jeho nedomyslenosti, ale jinak vsechno beha :)
    BUTHRAKAUR
    BUTHRAKAUR --- ---
    NECROMAN: tak ono to takhle na prvni pohled vypada, ze je test zbytecnej.. Kdo ale pise testy az po tom, co napise testovanou logiku, tak to dela spatne ;) A samozrejme to pak casto pusobi zbytecne/dementne.

    Jinak na lepsi pochopeni testu byla prednaska T.Hercega IMO naprosto k nicemu a misty i zavadejici, co si tak matne vzpominam. Osobne doporucuju http://srazy.info/coderetreat/2638 , ktery se blizi milovymi kroky.
    H_U_N_T_E_R
    H_U_N_T_E_R --- ---
    Kdo jdete na MS Fest afterparty, byla spuštěna závazná registrace, uzávěrka je v pondělí, takže moc času nezbývá:
    Microsoft Fest 2012 | Registrace na afterparty
    http://www.ms-fest.cz/Afterparty.aspx
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    MICTECH: Tak takovejch veci je vic zejo. Treba On[EventName], jednoduchy konstruktory, atd...

    Kdyz bych si mel psat testy uplne na vsechno, tak bych nejspis z vetsi casti opustil imperativni jazyky a zacal pouzivat nejakej deklarativni zapis. Mnozstvi napsanyho kodu (= mist, kde muzu udelat bug) by se vyrazne snizil.
    MICTECH
    MICTECH --- ---
    TENCOKACISTROMY: Zalezi jak ma clovek nastavene filtery na Code Coverage :)

    Samozrejmne do Code Coverage se nepocitaji get/set a tak podobne.
    Kliknutím sem můžete změnit nastavení reklam