/vendor/lastcraft/simpletest/docs/source/it/overview.xml
XML | 409 lines | 400 code | 8 blank | 1 comment | 0 complexity | 1d95af8965218c166ff3ca9354d1f361 MD5 | raw file
1<?xml version="1.0"?> 2<!-- $Id$ --> 3<page title="Panoramica su SimpleTest" here="Panoramica su SimpleTest"> 4 <synchronisation lang="en" version="0" date="08/06/2011" maintainer="arialdomartini" /> 5 <long_title> 6 Panoramica ed elenco delle caratteristiche dello unit tester e del web tester di SimpleTest 7 </long_title> 8 <content> 9 <section name="summary" title="Cos'è SimpleTest?"> 10 <p> 11 Il cuore di SimpleTest è un framework costruito intorno a classi 12 di test case. Queste ereditano delle classi test case di base 13 e vengono estese con dei metodi che contengono il codice di collaudo. 14 Ogni metodo di test di una classe test case è concepito per invocare 15 una serie di metodi assert, come <code>assertEqual()</code>, che lo sviluppatore 16 si attende vengano confermati. 17 Se il risultato atteso viene confermato allora successo dell'operazione 18 viene comunicato al test reporter che è in ascolto mentre qualsiasi 19 insuccesso o qualsiasi eccezione inattesa scatena un alert con la 20 relativa descrizione della discordanza. 21 22 Le dichiarazioni contenute del test case vengono convertite in 23 test script eseguibili mediante l'inclusione del file 24 autorun.php di SimpleTest. 25 26 </p> 27 <p> 28 Nonostante i molti sforzi intrapresi per mantenere la 29 compatibilità tra le varie versioni, la presente documentazione si riferisce 30 alla versione 1.1 di SimpleTest. 31 32 Nel caso si rilevi un malfunzionamento nei test dopo un aggiornamento, 33 si provi a consultare i file "HELP_MY_TESTS_DONT_WORK_ANYMORE" nella 34 directory simpletest per accertarsi della possibilità che una delle feature che si stanno utilizzando 35 sia stata rimossa o indicata come deprecata. 36 </p> 37 <p> 38 Un <a local="unit_test_documentation">test case</a> ha questo aspetto: 39<php><![CDATA[ 40<?php 41require_once('simpletest/autorun.php'); 42 43class <strong>MyTestCase</strong> extends UnitTestCase { 44 <strong> 45 function testWillCreateLogFileOnFirstMessage() { 46 $log = new Log('my.log'); 47 $this->assertFalse(file_exists('my.log')); 48 $log->message('Hello'); 49 $this->assertTrue(file_exists('my.log')); 50 }</strong> 51} 52?> 53]]></php> 54 </p> 55 <p> 56 SimpleTest è pensato per essere utilizzato da sviluppatori. 57 I destinatari di questo tool includono tutti gli sviluppatori 58 di applicazioni PHP di medie dimensioni, compresi gli sviluppatori 59 che si sono avvicinati da poco all'argomento dello unit testing e del 60 web regression testing. 61 I principi cardine di SimpleTest sono la sua facilità d'uso, l'estendibilità e 62 l'essenzialità delle sue caratteristiche. 63 </p> 64 <p> 65 I test vengono scritti direttamente in PHP, cioè nel linguaggio principale dell'applicazione. 66 Il vantaggio nell'uso del PHP come linguaggio di testing risiede nel 67 non dover imparare un nuovo linguaggio e nelle possibilità di iniziare 68 immediatamente ad implementare i test e da permettere allo sviluppatore di 69 collaudare uan qualsiasi parte del codice. 70 Fondamentalmente, qualsiasi sezione possa essere raggiunto dal codice dell'applicazione può 71 essere anche raggiunta dal codice di test dal momento che entrambi utilizzano il 72 medesimo linguaggio di programmazione. 73 </p> 74 <p> 75 Il tipo più semplice di case test è lo 76 <a local="unit_tester_documentation">UnitTestCase</a>. 77 Questa classe comprende i test standard per valutare l'uguaglianza di valori e 78 riferimenti e il matching con pattern. 79 Tutti questi test eseguono delle verifiche sui valori attesi come ritorno di 80 funzioni e metodi. 81 Si tratta senz'altro del tipo più comune di test nell'attività quotidiana di sviluppo 82 e costituiscono il 95% dei test case. 83 84 85 </p> 86 <p> 87 Tuttavia, l'obiettivo principale di un'applicazione web non è quello di 88 produrre gli output corretti dai suoi metodi e dai suoi oggetti ma quello 89 di generare pagine web. 90 La classe <a local="web_tester_documentation">WebTestCase</a> collauda le pagine web. 91 Simula l'attività di un browser che stia richiedendo una pagina e supporta cookie, proxy, 92 connessioni sicure, autenticazione, form, frame e molti altri elementi di navigazione. 93 Con questa tipologia di test case lo sviluppatore può verificare che le informazioni 94 presenti sulla pagina, sul form e nelle sessioni siano manipolate in modo corretto. 95 96 </p> 97 <p> 98 Un <a local="web_tester_documentation">WebTestCase</a> ha questo aspetto: 99<php><![CDATA[ 100<?php 101require_once('simpletest/autorun.php'); 102require_once('simpletest/web_tester.php'); 103 104class <strong>MySiteTest</strong> extends WebTestCase { 105 <strong> 106 function testHomePageHasContactDetails() { 107 $this->get('http://www.my-site.com/index.php'); 108 $this->assertTitle('My Home Page'); 109 $this->clickLink('Contact'); 110 $this->assertTitle('Contact me'); 111 $this->assertText('/Email me at/'); 112 }</strong> 113} 114?> 115]]></php> 116 </p> 117 </section> 118 <section name="features" title="Elenco delle caratteristiche"> 119 <p> 120 Quanto segue è una grossolana panoramica delle caratteristiche esistenti e 121 pianificate per SimpleTest con l'indicazione del momento previsto per il loro rilascio. 122 C'è la possibilità che questo elenco possa cambiare senza preavviso dal momento che 123 le milestone dipendono essenzialmente sul tempo libero che ho a disposizione. 124 Gli elementi colorati in verde sono già stati sviluppati ma non sono stati necessariamente 125 rilasciati. Nel caso ci sia la particolare urgenza di accedere ad una 126 feature già svilupata ma non ancora rilasciata è possibile eseguire un checkout 127 direttamente dal server SVN di Sourceforge. 128 <table><thead> 129 <tr><th>Feature</th><th>Descrizione</th><th>Release</th></tr> 130 </thead><tbody><tr> 131 <td>Unit test case</td> 132 <td>Classi test case di base e assert</td> 133 <td style="color: green;">1.0</td> 134 </tr> 135 <tr> 136 <td>Reportistica Html</td> 137 <td>Il tipo di visualizzazione più semplice</td> 138 <td style="color: green;">1.0</td> 139 </tr> 140 <tr> 141 <td>Caricamento automatico delle classi</td> 142 <td> 143 Legge un file contenente i test case e li carica all'interno 144 di un group test in modo automatico 145 </td> 146 <td style="color: green;">1.0</td> 147 </tr> 148 <tr> 149 <td>Oggetti Mock</td> 150 <td> 151 Oggetti capaci di simulare altri oggetti in modo da 152 rimuovere le dipendenze tra oggetti durante i test 153 </td> 154 <td style="color: green;">1.0</td> 155 </tr> 156 <tr> 157 <td>Web test case</td> 158 <td>Permette la navigazione tra link e i matching sul tag title</td> 159 <td style="color: green;">1.0</td> 160 </tr> 161 <tr> 162 <td>Mock parziali</td> 163 <td> 164 Eseguono il mocking di parte in una classe per permettere il 165 collaudo di elementi più piccoli di una classe e simulazioni 166 particolarmente complesse. 167 </td> 168 <td style="color: green;">1.0</td> 169 </tr> 170 <tr> 171 <td>Gestione dei cookie</td> 172 <td>Manipola i cookie durante la ricezione delle pagine web</td> 173 <td style="color: green;">1.0</td> 174 </tr> 175 <tr> 176 <td>Redirect</td> 177 <td>Il recupero di una pagina produce automaticamente un redirect 300.</td> 178 <td style="color: green;">1.0</td> 179 </tr> 180 <tr> 181 <td>Parsing dei form</td> 182 <td>Capacità di compilare semplici form e leggere i loro valori di default</td> 183 <td style="color: green;">1.0</td> 184 </tr> 185 <tr> 186 <td>Interfaccia a linea di comando</td> 187 <td>Lancia e visualizza i test senza l'ausilio di un browser</td> 188 <td style="color: green;">1.0</td> 189 </tr> 190 <tr> 191 <td>Exposure of expectation classes ??</td> 192 <td>Can create precise tests with mocks as well as test cases</td> 193 <td style="color: green;">1.0</td> 194 </tr> 195 <tr> 196 <td>Parsing e visualizzazione di XML</td> 197 <td> 198 Permette di eseguire i test su host multipli e l'integrazione delle estensioni per gli acceptance test 199 </td> 200 <td style="color: green;">1.0</td> 201 </tr> 202 <tr> 203 <td>Browser component</td> 204 <td> 205 Espone un'interfaccia di basso livello per accedere al web browser ed eseguire 206 case test più dettagliati 207 </td> 208 <td style="color: green;">1.0</td> 209 </tr> 210 <tr> 211 <td>Autenticazione HTTP</td> 212 <td> 213 Recupera pagine web protette: supporta solo l'autenticazione 214 di base 215 </td> 216 <td style="color: green;">1.0</td> 217 </tr> 218 <tr> 219 <td>Supporto a SSL</td> 220 <td>Permette di connettersi alle pagine https:</td> 221 <td style="color: green;">1.0</td> 222 </tr> 223 <tr> 224 <td>Supporto ai proxy</td> 225 <td>Permette di eseguire richieste tramite proxy</td> 226 <td style="color: green;">1.0</td> 227 </tr> 228 <tr> 229 <td>Supporto ai frame</td> 230 <td>Gestione dei frame all'interno dei web test case</td> 231 <td style="color: green;">1.0</td> 232 </tr> 233 <tr> 234 <td>Test dell'upload di file</td> 235 <td>Supporto al test del tag input di tipo file</td> 236 <td style="color: green;">1.0.1</td> 237 </tr> 238 <tr> 239 <td>Interfacce di mocking</td> 240 <td> 241 Permette di generare oggetti mock di intefacce 242 Can generate mock objects to interfaces as well as classes 243 and class interfaces are carried for type hints ??? 244 </td> 245 <td style="color: green;">1.0.1</td> 246 </tr> 247 <tr> 248 <td>Testing delle eccezioni</td> 249 <td>Feature simile al test degli errori PHP</td> 250 <td style="color: green;">1.0.1</td> 251 </tr> 252 <tr> 253 <td>Supporto alle label HTML</td> 254 <td>Consente l'accesso ai controlli tramite la loro label</td> 255 <td style="color: green;">1.0.1</td> 256 </tr> 257 <tr> 258 <td>Supporto ai tag di base</td> 259 <td>Respects page base tag when clicking ???</td> 260 <td style="color: green;">1.0.1</td> 261 </tr> 262 <tr> 263 <td>Conformità alla direttiva E_STRICT di PHP 5</td> 264 <td>Versione per PHP 5 in grado di funzionare con il livello di errore E_STRICT</td> 265 <td style="color: red;">1.1</td> 266 </tr> 267 <tr> 268 <td>Alternate HTML parsers</td> 269 <td>Can detect compiled parsers for performance improvements</td> 270 <td style="color: red;">1.1</td> 271 </tr> 272 <tr> 273 <td>Fixure in stile BDD</td> 274 <td>Permette di importare le fixture utilizzando un mixing come Can import fixtures using a mixin come il metodo given()</td> 275 <td style="color: red;">1.5</td> 276 </tr> 277 <tr> 278 <td>Miglioramenti al motore di reporting</td> 279 <td>Miglioramento al passaggio di messaggio per una migliore cooperazione con gli IDE</td> 280 <td style="color: red;">1.5</td> 281 </tr> 282 <tr> 283 <td>Fluent mock interface</td> 284 <td>Oggetti mock ancora più flessibili e compatti</td> 285 <td style="color: red;">1.6</td> 286 </tr> 287 <tr> 288 <td>Localizzazione</td> 289 <td>Localizzazione dei messaggi de del codice</td> 290 <td style="color: red;">1.6</td> 291 </tr> 292 <tr> 293 <td>Selettori CSS</td> 294 <td>Il contenuto HTML generato può essere analizzato utilizzando i selettori CSS</td> 295 <td style="color: red;">1.7</td> 296 </tr> 297 <tr> 298 <td>Assert sulle tabelle HTML</td> 299 <td>Permette esprimere le expectation utilizzando il matching dell'HTML e degli elementi delle tabelle</td> 300 <td style="color: red;">1.7</td> 301 </tr> 302 <tr> 303 <td>Modello unificato per l'acceptance test</td> 304 <td>Permette di ricercare all'interno del contenuto per messo di selettori in combinazione alle expectation</td> 305 <td style="color: red;">1.7</td> 306 </tr> 307 <tr> 308 <td>DatabaseTestCase</td> 309 <td>Selettori SQL e driver per DB</td> 310 <td style="color: red;">1.7</td> 311 </tr> 312 <tr> 313 <td>Supporto agli IFrame</td> 314 <td>Accede al contenuto aggiornabile degli IFrame</td> 315 <td style="color: red;">1.8</td> 316 </tr> 317 <tr> 318 <td>Supporto integrato a Selenium</td> 319 <td>Driver integrato per Selenium semplice da usare e provvisto di tutorial</td> 320 <td style="color: red;">1.9</td> 321 </tr> 322 <tr> 323 <td>Code coverage</td> 324 <td>Esegue un rapporto sul code coverage utilizzando il tool integrato mediante l'uso di XDebug</td> 325 <td style="color: red;">1.9</td> 326 </tr> 327 <tr> 328 <td>Vecchi metodi segnati come deprecati</td> 329 <td>SimpleTest2 possiede un'interfaccia più semplice</td> 330 <td style="color: red;">2.0</td> 331 </tr> 332 <tr> 333 <td>Supporto a Javascript</td> 334 <td>Uso del modulo PECL per aggiungere il supporto a Javascript al browser nativo</td> 335 <td style="color: red;">3.0</td> 336 </tr> 337 </tbody></table> 338 L'integrazione con PHP 5 è completa il che significa che a partire dalla 339 versione 1.1 di SimpleTest verrà supportato solo PHP versione 5.0.5 o superiore. 340 Le precedenti versioni di SimpleTest sono compatibili con PHP dalla versione 4.2 341 alla versione 5 (non E_STRICT). 342 </p> 343 </section> 344 </content> 345 <internal> 346 <link> 347 <a href="#summary">Quick summary</a> 348 of the SimpleTest tool for PHP. 349 </link> 350 <link> 351 <a href="#features">List of features</a>, 352 both current ones and those planned. 353 </link> 354 </internal> 355 <external> 356 <link> 357 <a local="unit_test_documentation">Documentation for SimpleTest</a>. 358 </link> 359 <link> 360 <a href="http://www.lastcraft.com/first_test_tutorial.php">How to write PHP test cases</a> 361 is a fairly advanced tutorial. 362 </link> 363 <link> 364 <a href="http://simpletest.org/api/">SimpleTest API</a> from phpdoc. 365 </link> 366 </external> 367 <meta> 368 <keywords> 369 software development tools, 370 php programming, 371 programming php, 372 software development tools, 373 Tools for extreme programming, 374 free php scripts, 375 links of testing tools, 376 php testing resources, 377 mock objects, 378 junit, 379 jwebunit, 380 htmlunit, 381 itc, 382 php testing links, 383 unit test advice and documentation, 384 extreme programming in php 385 </keywords> 386 </meta> 387 <refsynopsisdiv> 388 <authorgroup> 389 <author> 390 Marcus Baker 391 <authorblurb> 392 <para>Primary Developer</para><para>{@link mailto:marcus@lastcraft.com marcus@lastcraft.com}</para> 393 </authorblurb> 394 </author> 395 <author> 396 Perrick Pennet 397 <authorblurb> 398 <para>General manager</para><para>{@link mailto:perrick@noparking.net perrick@noparking.net}</para> 399 </authorblurb> 400 </author> 401 <author> 402 Jason Sweat 403 <authorblurb> 404 <para>Documentation</para><para>{@link mailto:jsweat_php@yahoo.com jsweat_php@yahoo.com}</para> 405 </authorblurb> 406 </author> 407 </authorgroup> 408 </refsynopsisdiv> 409</page>