PageRenderTime 48ms CodeModel.GetById 18ms RepoModel.GetById 1ms app.codeStats 0ms

/vendor/lastcraft/simpletest/docs/source/it/overview.xml

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