Dnes: 18. ledna 2018    | Registrace | Hledáme | Redakce | Info | Testy | Školení | Ocenění | Nápověda | Čtenář: nepřihlášen

Rychlé odkazy
  • Hlavní stránka
  • Seznam rubrik
  • Ankety
  • Editoriály
  • TOP 15
  • KONFERENCE 2008
  • KONFERENCE 2007
  • KONFERENCE 2006
  • KONFERENCE 2005
  • KONFERENCE 2004
  • Sborník
  • Testy
  • Virtuální školení
  • Personalizace


  • Hledáte práci?
    Hledáme redaktora - pojďte s námi tvořit Databázový svět!

    Vyhledávání

    Hledej
    na Databázovém světě!



    Rozšířené vyhledávání

    Rubriky
    Aktuality
    Bezpečnost
    Business
    Česká scéna
    Datové sklady
    Dokumentace
    Dotazovací jazyky
    Hardware
    Historie
    Komentáře
    Literatura
    Metodologie
    Nondb
    Open Source
    Poradna
    Produkty
    Případové studie
    Redakce
    Rozhovory
    Standardy
    Technologie
    Tipy - triky
    Tiskové zprávy
    Vývoj
    Vývojové nástroje
    Zajímavosti

    Co je to?
    SŘBD
    (Systém řízení báze dat)

    Programový systém umožňující vytváření, údržbu a použití báze dat. Podle komplexnosti je možné SŘBD rozdělit na nižší (např. PC Fand), střední (FoxPro) a vyspělé (Oracle 9i).

    Akce
    Dynamická Datová Centra
    - na semináři se seznámíte s komplexním řešením a koncepcí Dynamických Datových Center od Fujitsu Siemens Computers se speciálním důrazem na řešení FlexFrame.

    Textová inzerce
    IBPhoenix - Vše o InterBase a Firebirdu.

    Smějete se rádi? - Pak je pro vás Vtipník to pravé!

    Prodejce reklamy - Hledáme schopného prodejce reklamního prostoru, možnost i externí spolupráce.

    Přihlášený čtenář
    Nepřihlášený čtenář

    O portálu
    Databázový svět
    ISSN: 1213-5933

    Web je optimalizován pro rozlišení 1024x768, nicméně kromě větších rozlišení podporujeme i 800x600. Podrobnosti najdete zde.

    Chcete-li mít kdykoliv možnost zkontrolovat obsah našeho portálu, můžete využít podporu rss. Podrobnosti najdete zde.
    Tipy a triky pro Caché XVIII. - Testování kódu


    [Tipy - triky] - Kolik z nás vývojářů může na otázku "Testujete svůj kód?" odpovědět upřímně "Ano"? Asi většina, ale kolik z nás může stejně upřímně odpovědět "Ano" na otázku "Jste si opravdu jisti, že testujete svůj kód dostatečně?". Pro všechny, kdo chtějí mít jistotu, že svůj kód před nasazením u zákazníků dobře otestují a odladí, je určen tento příspěvek.



    Jedním z přístupů k efektivnímu psaní funkčního kódu je programování řízené testováním, v anglickém originále "test driven programming". Ve zkratce to znamená, že programátor předtím, než vůbec začne psát kód, se sedne a napíše všechny možné testy budoucího kódu. Poté napíše samotný kód, aplikuje testy a cyklus opakuje. Asi se shodneme na tom, že v praxi je tento přístup poměrně těžko dodržet, neboť jsme všichni tvorové netrpěliví a přece se nebudeme zdržovat psaním něčeho jiného než cílového kódu. Nicméně, když už testy nepíšeme pro všechny možné situace, a předem, alespoň ty hlavní je velmi vhodné vytvořit, byť i souběžně nebo dodatečně ke kódu.

    Caché nabízí již nějaký čas sadu tříd obsažených v balíčku %UnitTesting. Práce s balíčkem je jednoduchá a je detailně popsána v online dokumentaci, takže zde jen stručně s malou ukázkou.

    1. .Vytvoříme třídy s aplikačním kódem, který později budeme chtít testovat
    2. .Vytvoříme jednu nebo více testovacíh tříd, odděděním od %UnitTesting.TestCase
    3. .Pro každou testovanou funkčnost definujeme samostatnou metodu začínající řetězcem "Test". To je důležité, protože pouze takto pojmenované metody budou posléze vykonávány v průběhu testování.
    4. .Nyní exportujeme třídy jako XML do předem určeného testovacího adresáře. Kořenový testovací adresář je dán hodnotou globálu ^UnitTestRoot, kterou nezapomeneme nastavit. Export tříd je důležitý, protože výchozím chováním unit test manažeru je smazání definic testovacích tříd po vykonání testů.
    5. .V terminálu spustíme sadu testů příkazem d ##class(%UnitTest.Manager).RunTest([název adresáře])>, kde [název adresáře] označuje buď kořenový adresář (je-li prázdný) nebo podadresář s exportovanými třídami v XML souborech.
    6. .V průběhu vykonávání jednotlivých testů se bude na terminálu zobrazovat výpis jednotlivých metod a jejich výsledků, na konci výpisu pak bude uveden odkaz na CSP stránku s výsledky.

    Při tvorbě testovacích tříd můžeme využít předdefinovaná makra a metody pocházející z třídy %UnitTest.TestCase. Jednak můžeme nastavit pomocné proměnné nebo po sobě uklidit, jednak pomocí maker provádět vyhodnocování různých typů výrazů. Všechna makra s výjimkou logování začínají řetězcem $$$Assert.... Například makro $$$SAssertStatusOK kontroluje, zda návratová hodnota typu %Status vrací hodnotu OK (1) nebo chybový stav. Místo maker můžeme volat také metody začínající na "Assert", přičemž jako první argument zadáme hodnotu 1 (autoquoted) A jak bude vypadat otestování?

     
    SYM>d ##class(%UnitTest.Manager).RunTest("SYM")
     
    ===============================================================================
    Directory: D:\Cache\DataSets\MASTER\Unit Test Root\SYM\
    ===============================================================================
    SYM begins ...
    Load of directory started on 01/29/2010 15:38:45 '*.xml;*.XML'
     
     
    Loading file D:\Cache\DataSets\MASTER\Unit Test Root\SYM\Tip18.xml as xml
    Imported class: tt.unitest.Tip18
     
     
    Compilation started on 01/29/2010 15:38:45 with qualifiers 'ck'
    Compiling class tt.unitest.Tip18
    Compiling routine tt.unitest.Tip18.1
    Compilation finished successfully in 0.058s.
     
    Load finished successfully.
     
      tt.unitest.Tip18 begins ...
        TestPodelNulou() begins ...
          LogMessage:Zachycena ocekavana vyjimka  18 zPodel+2^tt.Tip18.3
          LogMessage:Duration of execution: .000122 sec.
        TestPodelNulou passed
        TestPodelOK() begins ...
          AssertEquals:Podel(6,2)=3 (passed)
          LogMessage:Duration of execution: .000042 sec.
        TestPodelOK passed
        TestSectiNOK() begins ...
          AssertNotEquals:Secti(1,2)!=4 (passed)
          LogMessage:Duration of execution: .000046 sec.
        TestSectiNOK passed
        TestSectiOK() begins ...
          AssertEquals:Secti(1,2)=3 (passed)
          LogMessage:Duration of execution: .000032 sec.
        TestSectiOK passed
      tt.unitest.Tip18 passed
    SYM passed
     
    Use the following URL to view the result:
    http://KUTAC:57772/csp/samples/%25UnitTest.Report.cls?NS=SYM&INDEX=2
    SYM
    

    V příštím díle se budeme věnovat využití uživatelské projekce pro Unit Testing.

    Související články:
    Tipy a triky pro Caché XXII. - Nová implementace dynamického SQL (15.11.2010)
    Tipy a triky pro Caché XXI. - Dynamické odbavení vlastností a metod tříd (08.11.2010)
    Tipy a triky pro Caché XX. - Práce s třídou %Installer (01.11.2010)
    Tipy a triky pro Caché XIX. - Využití uživatelské projekce (25.10.2010)
    Tipy a triky pro Caché XVII. – try - catch (04.10.2010)
    Tipy a triky pro Caché XVI. – kdy a proč používat třídu System.Eents? (02.10.2006)
    Tipy a triky pro Caché XV. – jak na chybové stavy? (31.07.2006)
    Tipy a triky pro Caché XIV. – jak na grafiku s XML transformací? (13.07.2006)
    Tipy a triky pro Caché XIII. – jak na izolaci objektů v CSP? (06.04.2006)
    Tipy a triky pro Caché XII. – jak na Caché Server Rules? (09.03.2006)
    Tipy a triky pro Caché XI. – definování virtuálních CSP serverů (09.02.2006)
    Tipy a triky pro Caché X. – vlastní vyhledávání (23.01.2006)
    Tipy a triky pro Caché IX. – komunikace mezi procesy podruhé (16.01.2006)
    Tipy a triky pro Caché VIII. – komunikace mezi procesy poprvé (09.01.2006)
    Tipy a triky pro Caché VII. – Java Server Pages a Caché (02.01.2006)
    Tipy a triky pro Caché VI. – psaní kódu v .NET pomocí COM třídy Factory (14.11.2005)
    Tipy a triky pro Caché V. – jak na ladění CSP stránek? (05.10.2005)
    Tipy a triky pro Caché IV. – jak na neznámý počet parametrů? (19.08.2005)
    Tipy a triky pro Caché III. – casting objektů (19.07.2005)
    Tipy a triky pro Caché II. – dotazy bez SQL (18.05.2005)
    Tipy a triky pro Caché I. - izolace (05.05.2005)

    ( Celý článek! | Autor: Daniel Kutáč | Počet komentářů: 0 | Přidat komentář | Informační e-mailVytisknout článek )

    Vyhledávání
     

    Anketa
    Kolik ročně utratíte za dovolené?

    Nic 
     (1548 hl.)
    Do 1 000,- Kč 
     (1068 hl.)
    Do 10 000,- Kč 
     (999 hl.)
    Do 25 000,- Kč 
     (1378 hl.)
    Do 50 000,- Kč 
     (1016 hl.)
    Do 75 000,- Kč 
     (1178 hl.)
    Více než 75 000,- Kč 
     (1019 hl.)

    Celkem hlasovalo: 8206


    Poslední komentáře
    frontierd@126.com
    frontierd@126.com
    frontierd@126.com
    c
    http://www.coachoutl

    Newsletter
    Přihlaste si nezávazně - i bez registrace - odběr informačního newsletteru. Podrobné informace najdete zde.

    Emailová adresa:


    Kalendář
    <<  Leden  >>
    PoÚtStČtSoNe
    1234567
    891011121314
    15161718192021
    22232425262728
    293031    

    Redakci připojuje


    Nejčtenější

    Databáze je prázdná!


    Nejvíce komentářů

    Databáze je prázdná!


    Reklama






    Nenechte si ujít články na dalších webech




    Na této stránce použité názvy programových produktů, firem apod. mohou být ochrannými známkami
    nebo registrovanými ochrannými známkami příslušných vlastníků.

    Databázový svět | dfKlub - digitální fotografie | Vtipník - vtipy přímo k Vám | Reminder - přestaňte zapomínat | Databázový svět

    Copyright (c) 2004 AVRE Publishing, spol. s r.o. Všechna práva vyhrazena