Revision: 1951
http://simpletest.svn.sourceforge.net/simpletest/?rev=1951&view=rev
Author: arialdomartini
Date: 2009-09-14 16:14:29 +0000 (Mon, 14 Sep 2009)
Log Message:
-----------
Italian pages converted to UTF8.
New pages translated.
Modified Paths:
--------------
simpletest/trunk/docs/source/en/reporter_documentation.xml
simpletest/trunk/docs/source/it/about.xml
simpletest/trunk/docs/source/it/authentication_documentation.xml
simpletest/trunk/docs/source/it/boundary_classes_tutorial.xml
simpletest/trunk/docs/source/it/browser_documentation.xml
simpletest/trunk/docs/source/it/display_subclass_tutorial.xml
simpletest/trunk/docs/source/it/expectation_documentation.xml
simpletest/trunk/docs/source/it/first_test_tutorial.xml
simpletest/trunk/docs/source/it/form_testing_documentation.xml
simpletest/trunk/docs/source/it/gain_control_tutorial.xml
simpletest/trunk/docs/source/it/group_test_documentation.xml
simpletest/trunk/docs/source/it/group_test_tutorial.xml
simpletest/trunk/docs/source/it/improving_design_tutorial.xml
simpletest/trunk/docs/source/it/mock_objects_documentation.xml
simpletest/trunk/docs/source/it/mock_objects_tutorial.xml
simpletest/trunk/docs/source/it/overview.xml
simpletest/trunk/docs/source/it/partial_mocks_documentation.xml
simpletest/trunk/docs/source/it/reporter_documentation.xml
simpletest/trunk/docs/source/it/simple_test.xml
simpletest/trunk/docs/source/it/subclass_tutorial.xml
simpletest/trunk/docs/source/it/unit_test_documentation.xml
simpletest/trunk/docs/source/it/web_tester_documentation.xml
Modified: simpletest/trunk/docs/source/en/reporter_documentation.xml
===================================================================
--- simpletest/trunk/docs/source/en/reporter_documentation.xml 2009-09-08 15:10:43 UTC (rev 1950)
+++ simpletest/trunk/docs/source/en/reporter_documentation.xml 2009-09-14 16:14:29 UTC (rev 1951)
@@ -98,7 +98,7 @@
The first start event is usually delivered by the top level group
test and so this is where <code>$test_name</code>
comes from.
- It paints the page titles, CSS, body tag, etc.
+ It paints the page title, CSS, body tag, etc.
It returns nothing (<code>void</code>).
</li>
<li>
@@ -438,7 +438,7 @@
Using <a href="#cli">SimpleTest from the command line</a>
</link>
<link>
- Using <a href="#xml">Using XML</a> for remote testing
+ <a href="#xml">Using XML</a> for remote testing
</link>
</internal>
<external>
Modified: simpletest/trunk/docs/source/it/about.xml
===================================================================
--- simpletest/trunk/docs/source/it/about.xml 2009-09-08 15:10:43 UTC (rev 1950)
+++ simpletest/trunk/docs/source/it/about.xml 2009-09-14 16:14:29 UTC (rev 1951)
@@ -1,6 +1,7 @@
<?xml version="1.0"?>
<!-- $Id: about.xml 1803 2008-09-08 11:11:03Z lastcraft $ -->
-<page title="About Last Craft" here="About">
+<page title="Informazioni su Last Craft" here="Informazioni su Last Craft">
+ <synchronisation lang="en" version="1684" date="19/03/2008" maintainer="pp11" />
<long_title>Informazioni su Last Craft</long_title>
<content>
<section name="me" title="People">
@@ -13,20 +14,20 @@
Attualmente sono un freelancer che lavora come sviluppatore senior per
<a href="http://www.wordtracker.com">Wordtracker</a>
e come consulente per svariate piccole compagnie.
- Wordtracker \xE8 un'agenzia di statistica su internet che gestisce un immenso
- database sulla popolarit\xE0 delle parole chiave dei motori di ricerca.
+ Wordtracker è un'agenzia di statistica su internet che gestisce un immenso
+ database sulla popolarità delle parole chiave dei motori di ricerca.
La compagnia adotta la metodologia di sviluppo eXtreme Programming.
</p>
<p>
- Mia moglie <a href="mailto:aviva@... Racher</a> \xE8 una
- microbiologa ed \xE8 la madre dei miei due bambini.
+ Mia moglie <a href="mailto:aviva@... Racher</a> è una
+ microbiologa ed è la madre dei miei due bambini.
</p>
</section>
<section name="issues" title="Issues">
<p>
Leggi l'intervista <a
href="http://www.oreillynet.com/pub/a/patents/2000/05/24/PizzoFiles.html">
- Chi pu\xF2 sentirsi davvero protetto?</a> sul network di
+ Chi può sentirsi davvero protetto?</a> sul network di
O'Reilly se sei interessato all'argomento delle licenze software.
</p>
</section>
Modified: simpletest/trunk/docs/source/it/authentication_documentation.xml
===================================================================
--- simpletest/trunk/docs/source/it/authentication_documentation.xml 2009-09-08 15:10:43 UTC (rev 1950)
+++ simpletest/trunk/docs/source/it/authentication_documentation.xml 2009-09-14 16:14:29 UTC (rev 1951)
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
<!-- $Id: authentication_documentation.xml 1803 2008-09-08 11:11:03Z lastcraft $ -->
-<page title="Authentication documentation" here="Authentication">
+<page title="L'autenticazione" here="L'autenticazione">
<long_title>SimpleTest documentation for testing log-in and authentication</long_title>
<content>
<introduction>
@@ -11,7 +11,7 @@
the SimpleTest web tester.
</p>
</introduction>
- <section name="basic" title="Basic HTTP authentication">
+ <section name="basic" title="Autenticazione HTTP di base">
<p>
If you fetch a page protected by basic authentication then
rather than receiving content, you will instead get a 401
@@ -127,7 +127,7 @@
in the future if enough people request this feature.
</p>
</section>
- <section name="cookies" title="Cookies">
+ <section name="cookies" title="I Cookie">
<p>
Basic authentication doesn't give enough control over the
user interface for web developers.
@@ -230,7 +230,7 @@
Is your site protected from this attack?
</p>
</section>
- <section name="session" title="Browser sessions">
+ <section name="session" title="Le sessioni del browser">
<p>
If you are testing an authentication system a critical piece
of behaviour is what happens when a user logs back in.
Modified: simpletest/trunk/docs/source/it/boundary_classes_tutorial.xml
===================================================================
--- simpletest/trunk/docs/source/it/boundary_classes_tutorial.xml 2009-09-08 15:10:43 UTC (rev 1950)
+++ simpletest/trunk/docs/source/it/boundary_classes_tutorial.xml 2009-09-14 16:14:29 UTC (rev 1951)
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
<!-- $Id: boundary_classes_tutorial.xml 1879 2009-06-12 16:41:44Z pp11 $ -->
-<page title="The Application Boundary" here="Boundary classes">
+<page title="Le classi boundary" here="Tutorial: le classi boundary">
<long_title>
PHP unit testing tutorial - Organising unit tests and "setup tests"
</long_title>
Modified: simpletest/trunk/docs/source/it/browser_documentation.xml
===================================================================
--- simpletest/trunk/docs/source/it/browser_documentation.xml 2009-09-08 15:10:43 UTC (rev 1950)
+++ simpletest/trunk/docs/source/it/browser_documentation.xml 2009-09-14 16:14:29 UTC (rev 1951)
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
<!-- $Id: browser_documentation.xml 1803 2008-09-08 11:11:03Z lastcraft $ -->
-<page title="PHP Scriptable Web Browser" here="Scriptable browser">
+<page title="Scripting del browser" here="Scripting del browser">
<long_title>SimpleTest documentation for the scriptable web browser component</long_title>
<content>
<introduction>
@@ -10,7 +10,7 @@
independently of the SimpleTest framework itself.
</p>
</introduction>
- <section name="scripting" title="The Scriptable Browser">
+ <section name="scripting" title="Lo scripting del browser">
<p>
You can use the web browser in PHP scripts to confirm
services are up and running, or to extract information
@@ -129,7 +129,7 @@
This includes links to click and forms to submit.
</p>
</section>
- <section name="debug" title="What went wrong?">
+ <section name="debug" title="Cosa è andato storto?">
<p>
All of this functionality is great when we actually manage to fetch pages,
but that doesn't always happen.
@@ -168,7 +168,7 @@
see what happened.
</p>
</section>
- <section name="unit" title="Complex unit tests with multiple browsers">
+ <section name="unit" title="Unit test complessi con più browser">
<p>
Anything that could be done in a
<a local="web_tester_documentation">WebTestCase</a> can
Modified: simpletest/trunk/docs/source/it/display_subclass_tutorial.xml
===================================================================
--- simpletest/trunk/docs/source/it/display_subclass_tutorial.xml 2009-09-08 15:10:43 UTC (rev 1950)
+++ simpletest/trunk/docs/source/it/display_subclass_tutorial.xml 2009-09-14 16:14:29 UTC (rev 1951)
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
<!-- $Id: display_subclass_tutorial.xml 1876 2009-06-12 16:30:24Z pp11 $ -->
-<page title="Changing the test display" here="Showing passes">
+<page title="Visualizzare i risultati" here="Tutorial: visualizzare i risultati">
<long_title>PHP unit testing tutorial - Subclassing the test display</long_title>
<content>
<introduction>
Modified: simpletest/trunk/docs/source/it/expectation_documentation.xml
===================================================================
--- simpletest/trunk/docs/source/it/expectation_documentation.xml 2009-09-08 15:10:43 UTC (rev 1950)
+++ simpletest/trunk/docs/source/it/expectation_documentation.xml 2009-09-14 16:14:29 UTC (rev 1951)
@@ -1,11 +1,11 @@
<?xml version="1.0"?>
<!-- $Id: expectation_documentation.xml 1873 2009-06-12 16:12:18Z pp11 $ -->
-<page title="Expectation documentation" here="Expectations">
+<page title="Le expectation" here="Le expectation">
<long_title>
Extending the SimpleTest unit tester with additional expectation classes
</long_title>
<content>
- <section name="mock" title="More control over mock objects">
+ <section name="mock" title="Maggiore controllo sugli oggetti mock">
<p>
The default behaviour of the
<a local="mock_objects_documentation">mock objects</a>
@@ -161,7 +161,7 @@
This will accept any value from 13.999 to 14.001 inclusive.
</p>
</section>
- <section name="behaviour" title="Using expectations to control stubs">
+ <section name="behaviour" title="Usare le expectation per controllare gli stub">
<p>
The expectation classes can be used not just for sending assertions
from mock objects, but also for selecting behaviour for the
@@ -197,7 +197,7 @@
completeness.
</p>
</section>
- <section name="extending" title="Creating your own expectations">
+ <section name="extending" title="Crearsi le proprie expectation">
<p>
The expectation classes have a very simple structure.
So simple that it is easy to create your own versions for
@@ -275,7 +275,7 @@
]]></php>
</p>
</section>
- <section name="unit" title="Under the bonnet of the unit tester">
+ <section name="unit" title="Dentro il cofano dello unit tester">
<p>
The <a href="http://sourceforge.net/projects/simpletest/">SimpleTest unit testing framework</a>
also uses the expectation classes internally for the
Modified: simpletest/trunk/docs/source/it/first_test_tutorial.xml
===================================================================
--- simpletest/trunk/docs/source/it/first_test_tutorial.xml 2009-09-08 15:10:43 UTC (rev 1950)
+++ simpletest/trunk/docs/source/it/first_test_tutorial.xml 2009-09-14 16:14:29 UTC (rev 1951)
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
<!-- $Id: first_test_tutorial.xml 1941 2009-08-10 10:09:32Z pp11 $ -->
-<page title="Creating a new test case" here="PHP unit testing">
+<page title="Tutorial rapido" here="Tutorial rapido">
<long_title>PHP unit testing tutorial - Creating an example test case in PHP</long_title>
<content>
<introduction>
Modified: simpletest/trunk/docs/source/it/form_testing_documentation.xml
===================================================================
--- simpletest/trunk/docs/source/it/form_testing_documentation.xml 2009-09-08 15:10:43 UTC (rev 1950)
+++ simpletest/trunk/docs/source/it/form_testing_documentation.xml 2009-09-14 16:14:29 UTC (rev 1951)
@@ -1,9 +1,9 @@
<?xml version="1.0"?>
<!-- $Id: form_testing_documentation.xml 1812 2008-09-27 01:46:42Z lastcraft $ -->
-<page title="Form testing documentation" here="Testing forms">
+<page title="Il collaudo di form" here="Il collaudo di form">
<long_title>SimpleTest documentation for testing HTML forms</long_title>
<content>
- <section name="submit" title="Submitting a simple form">
+ <section name="submit" title="Fare il Submit di un semplice form">
<p>
When a page is fetched by the <code>WebTestCase</code>
using <code>get()</code> or
@@ -142,7 +142,7 @@
commands. See below for a way to test such forms.
</p>
</section>
- <section name="multiple" title="Fields with multiple values">
+ <section name="multiple" title="Campi con valori multipli">
<p>
SimpleTest can cope with two types of multivalue controls: Multiple
selection drop downs, and multiple checkboxes with the same name
@@ -199,7 +199,7 @@
by logging in as that user and attempting an update.
</p>
</section>
- <section name="hidden-field" title="Forms which use javascript to set a hidden field">
+ <section name="hidden-field" title="Form che utilizzano Javascript per popolare campi nascosti">
<p>
If you want to test a form which relies on javascript to set a hidden
field, you can't just call setField().
Modified: simpletest/trunk/docs/source/it/gain_control_tutorial.xml
===================================================================
--- simpletest/trunk/docs/source/it/gain_control_tutorial.xml 2009-09-08 15:10:43 UTC (rev 1950)
+++ simpletest/trunk/docs/source/it/gain_control_tutorial.xml 2009-09-14 16:14:29 UTC (rev 1951)
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
<!-- $Id: gain_control_tutorial.xml 1867 2009-03-05 15:49:54Z lastcraft $ -->
-<page title="Taking control of testing" here="Taking control">
+<page title="Prendere il controllo dei test" here="Tutorial: prendere il controllo">
<long_title>PHP unit testing tutorial - Isolating variables when testing</long_title>
<content>
<introduction>
Modified: simpletest/trunk/docs/source/it/group_test_documentation.xml
===================================================================
--- simpletest/trunk/docs/source/it/group_test_documentation.xml 2009-09-08 15:10:43 UTC (rev 1950)
+++ simpletest/trunk/docs/source/it/group_test_documentation.xml 2009-09-14 16:14:29 UTC (rev 1951)
@@ -1,12 +1,12 @@
<?xml version="1.0"?>
<!-- $Id: group_test_documentation.xml 1878 2009-06-12 16:39:37Z pp11 $ -->
-<page title="Test suite documentation" here="Group tests">
+<page title="Raggruppamento di test" here="Raggruppamento di test">
<long_title>SimpleTest for PHP test suites</long_title>
<content>
- <section name="group" title="Grouping tests into suites">
+ <section name="group" title="Raggruppare i test in suite">
<p>
Eistono molti sistemi per raggruppare i test in test suite.
- Uno di questi \xE8 quello di mettere semplicemente pi\xF9 test case in un singolo file:
+ Uno di questi è quello di mettere semplicemente più test case in un singolo file:
<php><![CDATA[
<strong><?php
require_once(dirname(__FILE__) . '/simpletest/autorun.php');
@@ -23,7 +23,7 @@
]]></php>
E' possibile mettere quanti test case si vuole in ogni file.
Ogni file necessario all'esecuzione, come ad esempio la libreria da
- collaudare, dovrebbe essere incluso ma non \xE8 necessario includere
+ collaudare, dovrebbe essere incluso ma non è necessario includere
alcuna libreria di SimpleTest.
</p>
<p>
@@ -44,7 +44,7 @@
</p>
<p>
Chiameremo questo file di esempio <em>file_test.php</em>.
- Il passo successivo \xE8 quello di creare il file della test suite
+ Il passo successivo è quello di creare il file della test suite
che potremmo chiamare <em>my_test_suite.php</em>.
Sono certo che saprai trovare nomi migliori di questo.
</p>
@@ -63,17 +63,17 @@
}
?>
]]></php>
- Quello che accadr\xE0 \xE8 che la classe <code>TestSuite</code>
- penser\xE0 autonomamente ad eseguire i <code>require_once()</code>
- necessari, controller\xE0 se nuove classi di test case sono presenti nel
- file e all'occorrenza li aggiunger\xE0 alla test suite.
+ Quello che accadrà è che la classe <code>TestSuite</code>
+ penserà autonomamente ad eseguire i <code>require_once()</code>
+ necessari, controllerà se nuove classi di test case sono presenti nel
+ file e all'occorrenza li aggiungerà alla test suite.
Questo metodo ci fornisce il massimo del controllo.
</p>
<p>
Nel caso questo metodo sembrasse troppo prolisso e si desiderasse
- di raggruppare tra loro pi\xF9 test suite di una stessa directory oppure in
- base al loro nome del file, esiste un metodo ancora pi\xF9 automatico:
+ di raggruppare tra loro più test suite di una stessa directory oppure in
+ base al loro nome del file, esiste un metodo ancora più automatico:
<php><![CDATA[
<?php
require_once('simpletest/autorun.php');
@@ -90,32 +90,32 @@
Questo sistema ricerca nella directory "unit" i file
il cui nome termina per "_test.php" e li carica.
L'uso di <code>SimplePatternCollector</code> per filtrare in
- base ad un pattern non \xE8 obbligatorio ma \xE8 il sistema pi\xF9 comune.
+ base ad un pattern non è obbligatorio ma è il sistema più comune.
</p>
<p>
- Tutto quel che resta da fare adesso \xE8 creare un file nella directory
- dei test case che lancer\xE0 lo script della test suite.
+ Tutto quel che resta da fare adesso è creare un file nella directory
+ dei test case che lancerà lo script della test suite.
</p>
<p>
I test case caricati con il metodo <code>addFile</code> posseggono
- alcune utili propriet\xE0.
+ alcune utili proprietà.
Si ha la certezza che il costruttore sia invocato prima del lancio del
primo test e il distruttore dopo l'esecuzione dell'ultimo.
Questo consente di ospitare nel costruttore e nel distruttore
il codice di set up e di tear down che deve valere per tutto il test case.
</p>
</section>
- <section name="higher" title="Composite suites">
+ <section name="higher" title="Suite composite">
<p>
Il metodo appena presentato prevede di ospitare tutti i test case in
un'unica grande test suite.
Per progetti di grandi dimensione, tuttavia, questo metodo non risulta
- abbastanza flessibile perch\xE9 si potrebbe desiderare di raggrupare
- test nelle pi\xF9 varie modalit\xE0.
+ abbastanza flessibile perché si potrebbe desiderare di raggrupare
+ test nelle più varie modalità.
</p>
<p>
- Per poter disporre di un group test pi\xF9 flessibile
- \xE8 possibile istanziare una classe che erediti da <code>TestSuite</code>:
+ Per poter disporre di un group test più flessibile
+ è possibile istanziare una classe che erediti da <code>TestSuite</code>:
<php><![CDATA[
<?php
require_once('simpletest/autorun.php');
@@ -128,8 +128,8 @@
}</strong>
?>
]]></php>
- In questo modo si \xE8 aggiunta una test suite dentro un'altra.
- In questo caso non risulta molto utile ma \xE8 possibile aggiungere
+ In questo modo si è aggiunta una test suite dentro un'altra.
+ In questo caso non risulta molto utile ma è possibile aggiungere
altre suite a piacimento.
E' perfino possibile mescolare gruppi e singoli test case a patto
di prestare attenzione alle inclusioni multiple.
@@ -146,7 +146,7 @@
}
?>
]]></php>
- Nel caso si includa un file pi\xF9 di una volta, verrebbe eseguita
+ Nel caso si includa un file più di una volta, verrebbe eseguita
solo la prima istanza del test.
</p>
</section>
Modified: simpletest/trunk/docs/source/it/group_test_tutorial.xml
===================================================================
--- simpletest/trunk/docs/source/it/group_test_tutorial.xml 2009-09-08 15:10:43 UTC (rev 1950)
+++ simpletest/trunk/docs/source/it/group_test_tutorial.xml 2009-09-14 16:14:29 UTC (rev 1951)
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
<!-- $Id: group_test_tutorial.xml 1867 2009-03-05 15:49:54Z lastcraft $ -->
-<page title="Grouping tests" here="Grouping tests">
+<page title="Raggruppamento di test" here="Tutorial: Raggruppamento di test">
<long_title>
PHP unit testing tutorial - Grouping together unit
tests and examples of writing test cases
Modified: simpletest/trunk/docs/source/it/improving_design_tutorial.xml
===================================================================
--- simpletest/trunk/docs/source/it/improving_design_tutorial.xml 2009-09-08 15:10:43 UTC (rev 1950)
+++ simpletest/trunk/docs/source/it/improving_design_tutorial.xml 2009-09-14 16:14:29 UTC (rev 1951)
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
<!-- $Id: improving_design_tutorial.xml 1873 2009-06-12 16:12:18Z pp11 $ -->
-<page title="Top down and test driven" here="Top down testing">
+<page title="Test con l'approccio top-down" here="Tutorial: test con l'approccio top-down">
<long_title>
PHP unit testing tutorial - Top down design
test first with mock objects
Modified: simpletest/trunk/docs/source/it/mock_objects_documentation.xml
===================================================================
--- simpletest/trunk/docs/source/it/mock_objects_documentation.xml 2009-09-08 15:10:43 UTC (rev 1950)
+++ simpletest/trunk/docs/source/it/mock_objects_documentation.xml 2009-09-14 16:14:29 UTC (rev 1951)
@@ -1,9 +1,9 @@
<?xml version="1.0"?>
<!-- $Id: mock_objects_documentation.xml 1890 2009-07-26 12:09:04Z lastcraft $ -->
-<page title="Mock objects documentation" here="Mock objects">
+<page title="Gli oggetti mock" here="Gli oggetti mock">
<long_title>SimpleTest for PHP mock objects documentation</long_title>
<content>
- <section name="what" title="What are mock objects?">
+ <section name="what" title="Cosa sono gli oggetti mock?">
<p>
Gli oggetti mock svolgono due ruoli durante un test case: il ruolo di "attori"
ed il ruolo di "critici"
@@ -12,18 +12,18 @@
Nel ruolo di attore il mock ha la funzione di simulare il
comportamento di un altro oggetto che durante il test sarebbe
difficile o oneroso da instanziare.
- L'esempio classico \xE8 quello di una connessione ad un database.
+ L'esempio classico è quello di una connessione ad un database.
Allestire un database di collaudo all'inizio di ogni singolo testo
rallenterebbe il collaudo a livelli inaccettabile e richiederebbe
l'istallazione di un apposito motore di database e di dati di test sul
server di test.
- Se ci fosse la possibilit\xE0 di similare la connessione e restituire
+ Se ci fosse la possibilità di similare la connessione e restituire
i dati selezionati per il collaudo non solo si otterrebbero dei
- test pi\xF9 pragmatici ma ci si potrebbe permettere di alimentare il
+ test più pragmatici ma ci si potrebbe permettere di alimentare il
codice con dati spuri per vederne la reazione.
- Avremmo la possibilit\xE0 di simulare il caso di un database fuori linea o
- altre condizioni estreme di questo tipo, senza la necessit\xE0 di generare
- i malfunzionamenti nella realt\xE0.
+ Avremmo la possibilità di simulare il caso di un database fuori linea o
+ altre condizioni estreme di questo tipo, senza la necessità di generare
+ i malfunzionamenti nella realtà.
In altre parole, i mock possono fornire un grande controllo dell'ambiente
di test.
</p>
@@ -35,11 +35,11 @@
Addison-Wesley) nel 1999.
</p>
<p>
- Un server stub \xE8 la simulazione di un oggetto o di un componente.
+ Un server stub è la simulazione di un oggetto o di un componente.
Dovrebbe rimpiazzare esplicitamente un componente con lo scopo di
permettere il test o la prototipazione ma, fondamentalmente, resta un
componente leggero.
- In questo modo permette ai test di eseguirsi con rapidit\xE0; nel caso
+ In questo modo permette ai test di eseguirsi con rapidità; nel caso
la classe simulata ancora non esista affatto, permettono di eseguire
comunque il codice.
</p>
@@ -59,12 +59,12 @@
in grado di verificare l'oggetto chiamante stia usando una query, supponiamo
SQL, formalmente corretta.
Una volta preparai con expectation sufficientemente rigorose
- non si avr\xE0 pi\xF9 bisogno di eseguire manualmente gli assert.
+ non si avrà più bisogno di eseguire manualmente gli assert.
</p>
</section>
- <section name="creation" title="Creating mock objects">
+ <section name="creation" title="Creare oggetti mock">
<p>
- Tutto quello di cui abbiamo bisogno \xE8 una classe esistente,
+ Tutto quello di cui abbiamo bisogno è una classe esistente,
supponiamo per la connessione al database, che abbia
questo aspetto:
<php><![CDATA[
@@ -74,8 +74,8 @@
function selectQuery($sql) { }
}</strong>
]]></php>
- Non c'\xE8 bisogno che la classe sia stata implementata.
- Pu\xF2 bastare la sua interfaccia:
+ Non c'è bisogno che la classe sia stata implementata.
+ Può bastare la sua interfaccia:
<php><![CDATA[
<strong>interface DatabaseConnection {
function DatabaseConnection();
@@ -93,7 +93,7 @@
]]></php>
Questo genera una classe clone
chiamata <code>MockDatabaseConnection</code>.
- Adesso \xE8 possibile istanziare la nuova classe
+ Adesso è possibile istanziare la nuova classe
all'interno del test case:
<php><![CDATA[
require_once('simpletest/autorun.php');
@@ -145,30 +145,30 @@
</p>
<p>
Modificare il valore di ritorno di un metodo da <code>null</code>
- a qualcos'altro \xE8 abbastanza semplice:
+ a qualcos'altro è abbastanza semplice:
<php><![CDATA[
<strong>$connection->returns('query', 37)</strong>
]]></php>
Adesso, ogni invocazione di
<code><![CDATA[$connection->query()]]></code> restituisce 37.
- 38 non ha niente di speciale: il valore di ritorno pu\xF2
+ 38 non ha niente di speciale: il valore di ritorno può
essere arbitrariamente complesso.
</p>
<p>
I parametri, in questo caso, sono irrilevanti e
una volta che si sia impostato il mock con questo
- sistema si otterr\xE0 sempre il medesimo valore qualsiasi essi siano
+ sistema si otterrà sempre il medesimo valore qualsiasi essi siano
Questa potrebbe apparire una replica poco convincente di una
connessione al database, ma per un metodo di test di
- una mezza dozzina di righe, solitamente, \xE8 tutto quello
- di cui si pu\xF2 aver bisogno.
+ una mezza dozzina di righe, solitamente, è tutto quello
+ di cui si può aver bisogno.
</p>
<p>
- Tuttavia, le cose non sono sempre cos\xEC semplici.
+ Tuttavia, le cose non sono sempre così semplici.
Uno dei problemi comuni si propone con le iterazioni, nelle quali
- il ritorno sistematico del solito valore pu\xF2 causare cicli
+ il ritorno sistematico del solito valore può causare cicli
infiniti dentro l'oggetto da collaudare.
- Per questo c'\xE8 bisogno di poter impostare sequenze di valori.
+ Per questo c'è bisogno di poter impostare sequenze di valori.
Supponiamo di avere una semplice iterazione come questa:
<php><![CDATA[
class Iterator {
@@ -176,10 +176,10 @@
function next() { }
}
]]></php>
- Stiamo parlando dell'iterazione pi\xF9 semplice che possa capitare.
+ Stiamo parlando dell'iterazione più semplice che possa capitare.
Se si assume che questa iterazione restituisca del testo
fino a quando raggiunge la fine e che da quel momento
- debba restituire false, si potrebbe simularla cos\xEC:
+ debba restituire false, si potrebbe simularla così:
<php><![CDATA[
Mock::generate('Iterator');
@@ -195,17 +195,17 @@
}
]]></php>
Quando <code>next()</code> di <code>MockIterator</code> viene invocata
- restituir\xE0 "First string" la prima volta e "Second string" la
+ restituirà "First string" la prima volta e "Second string" la
seconda mentre false tutte le altre volte.
I valori di ritorno delle sequenze hanno precedenza sul valori
di ritorno costante.
- Se pu\xF2 essere utile, si pu\xF2 pensare al valore di ritorno costante
+ Se può essere utile, si può pensare al valore di ritorno costante
come il valore di ritorno di default.
</p>
<p>
- Un'altra situazione delicata \xE8 il caso di un'operazione
+ Un'altra situazione delicata è il caso di un'operazione
<code>get()</code> overloaded.
- Ad esempio \xE8 quando un'informazione conservata con una coppia nome/valore.
+ Ad esempio è quando un'informazione conservata con una coppia nome/valore.
Supponiamo di avere una classe di configurazione come questa:
<php><![CDATA[
class Configuration {
@@ -213,10 +213,10 @@
function get($key) { ... }
}
]]></php>
- Questo \xE8 la tipica situazione in cui un oggetto mock risulta
- utile, dal momento che la configurazione variet\xE0 da macchina
+ Questo è la tipica situazione in cui un oggetto mock risulta
+ utile, dal momento che la configurazione varietà da macchina
a macchina e perfino da test a test.
- Tuttavia, il problema \xE8 che i dati vengono recuperati mediante
+ Tuttavia, il problema è che i dati vengono recuperati mediante
la chiamata al metodo <code>get()</code> e che, contemporaneamente,
si desiderano valori differenti in corrispondenza di chiavi differenti.
Fortunatamente, i mock dispongono di un sistema di filtraggio:
@@ -226,7 +226,7 @@
$config->returns('get', 'admin', array('db_user'));
$config->returns('get', 'secret', array('db_password'));</strong>
]]></php>
- Il parametro aggiunto \xE8 l'elenco degli argomenti con
+ Il parametro aggiunto è l'elenco degli argomenti con
i quali provare a fare un match.
In questo caso, ad esempio, si sta provando il match con il solo
argomento a disposizione il quale viene usato come look up key.
@@ -235,8 +235,8 @@
<php><![CDATA[
$config->get('db_user')
]]></php>
- ...restituir\xE0 "admin".
- Il risultato \xE8 stato ricavato tentando il match degli argomenti
+ ...restituirà "admin".
+ Il risultato è stato ricavato tentando il match degli argomenti
richiesti con ognuno dei valori dell'elenco, fino a che un match
completo viene individuato.
</p>
@@ -245,18 +245,18 @@
<php><![CDATA[<strong>
$config->returns('get', false, array('*'));</strong>
]]></php>
- Questo non \xE8 equivalente ad impostare il valore di
+ Questo non è equivalente ad impostare il valore di
ritorno che si deve avere in assenza di argomenti, come accade con:
<php><![CDATA[<strong>
$config->returns('get', false);</strong>
]]></php>
Nel primo caso, viene accettato qualsiasi singolo argomento ma
- un argomento \xE8 comunque richiesto.
+ un argomento è comunque richiesto.
Il secondo caso accetta un qualsiasi numero di argomenti e
- viene considerato nel caso siano gi\xE0 stati tentati tutti gli altri match.
+ viene considerato nel caso siano già stati tentati tutti gli altri match.
Si noti che se nel primo caso si aggiungesse ulteriori parametri
- dopo il carattere jolly questi verrebbero ignorati perch\xE9
+ dopo il carattere jolly questi verrebbero ignorati perché
la condizione sul carattere jolly verrebbe soddisfatta prima della
loro valutazione.
@@ -264,7 +264,7 @@
potrebbe essere importante e si corre il rischio di avere delle
corrispondenze che vengono mascherate da caretteri jolly dichiarati
prima.
- Nel caso di dubbi \xE8 meglio dichiarare i match pi\xF9 specifici all'inzio.
+ Nel caso di dubbi è meglio dichiarare i match più specifici all'inzio.
</p>
<p>
@@ -290,7 +290,7 @@
...
}
]]></php>
- Con questa soluzione si \xE8 certi che ogni volta che viene
+ Con questa soluzione si è certi che ogni volta che viene
invocato <code><![CDATA[$pad->note(3)]]></code> viene
restituito sempre il medesimo oggetto <code>$note</code>, perfino
quando questo viene modificato.
@@ -308,18 +308,18 @@
]]></php>
Questo restituisce un riferimento a <code>$buy_books</code> e
successivamente a <code>$write_code</code>, ma solo sei i due
- paramtri risultano impostati ed il secondo \xE8 l'intero 3.
+ paramtri risultano impostati ed il secondo è l'intero 3.
In questo modo ogni esigenza dovrebbe risultare soddisfatta.
</p>
<p>
- Un ultimo caso delicato \xE8 quello di un oggetto che ne instanzia un
- altro, ovvero quello che \xE8 conosciuto come factory pattern.
+ Un ultimo caso delicato è quello di un oggetto che ne instanzia un
+ altro, ovvero quello che è conosciuto come factory pattern.
Supponiamo che una query al nostro immaginario database abbia successo
e che venga restituito un result set nella forma di iteratore in modo
che ad ogni chiamata del metodo <code>next()</code> dell'iteratore venga fornita una
riga o il valore false.
- L'idea di dover simulare un comportamento simile pu\xF2 sembrare da incubo ma
- in realt\xE0 pu\xF2 essere realizzata con un mock con il meccanismi gi\xE0 presentati:
+ L'idea di dover simulare un comportamento simile può sembrare da incubo ma
+ in realtà può essere realizzata con un mock con il meccanismi già presentati:
<php><![CDATA[
Mock::generate('DatabaseConnection');
Mock::generate('ResultIterator');
@@ -346,7 +346,7 @@
Adesso solo se viene invocato il metodo <code>query()</code>
di <code>$connection</code> viene restituito l'oggetto <code>$result</code>
che si esaurisce la sua funzione dopo la terza chiamata a <code>next()</code>.
- Dovrebbero esserci abbastanza informazioni perch\xE9 la classe
+ Dovrebbero esserci abbastanza informazioni perché la classe
<code>UserFinder</code> possa essere collaudata senza problemi.
Un test molto preciso e nessun database reale tra i piedi.
</p>
@@ -356,7 +356,7 @@
<php><![CDATA[
$connection->returns('selectQuery', $result, array(<strong>'select name, id from people'</strong>));
]]></php>
- Il realt\xE0 questa \xE8 una cattiva idea.
+ Il realtà questa è una cattiva idea.
</p>
<p>
Abbiamo <code>UserFinder</code> che appartiene al mondo degli oggetti
@@ -364,10 +364,10 @@
piuttosto estesa, l'intero SQL.
Immaginamo di aver scritto molti test come questo che adesso si trovano
a dipendere dall'esatta stringa SQL utilizzata.
- C'\xE8 la possibilit\xE0 che queste query cambino in massa per ragioni non legate
+ C'è la possibilità che queste query cambino in massa per ragioni non legate
allo specifico test. Ad esempio, le regole nell'uso di apici e virgolette
potrebbe cambiare, potrebbe essere rinominata una tabella, potrebbe venire
- aggiunta una link table e cos\xEC via.
+ aggiunta una link table e così via.
Queste modifiche richiederebbero la riscrittura di ogni singolo test ogni volta
che viene eseguito un refactoring, nonostante il comportamento da collaudare
sia fondamentalmente restato inalterato.
@@ -376,7 +376,7 @@
test solo per un cambio di nome di tabella.
</p>
<p>
- Una regola \xE8 quella di non scrivere mock di interfacce troppo complesse.
+ Una regola è quella di non scrivere mock di interfacce troppo complesse.
</p>
<p>
@@ -397,20 +397,20 @@
}
}
]]></php>
- Questo collaudo \xE8 immune ai cambiamenti dello schema del db.
- Fallisce solo se si rompono le funzionalit\xE0 dell'applicazione, cio\xE8
+ Questo collaudo è immune ai cambiamenti dello schema del db.
+ Fallisce solo se si rompono le funzionalità dell'applicazione, cioè
quello che intendevamo collaudare.
</p>
<p>
- Il segreto \xE8 nel codice di <code>setUp()</code> e di <code>tearDown()</code>
+ Il segreto è nel codice di <code>setUp()</code> e di <code>tearDown()</code>
sui quali fino ad ora abbiamo sorvolato.
Questi metodi hanno il compito di ripulire le tabelle del database
ed assicurare la correttezza dello schema.
- Realizzare questo risultato pu\xF2 comportare molto lavoro ma generalente
+ Realizzare questo risultato può comportare molto lavoro ma generalente
si dispone comunque di codice simile per svolgere il deployment.
</p>
<p>
- Un'area dove si ha veramente bisogno del mocking \xE8 nella simulazione
+ Un'area dove si ha veramente bisogno del mocking è nella simulazione
delle anomalie.
Supponiamo che il database cada durante il funzionamento di <code>UserFinder</code>
@@ -429,7 +429,7 @@
}
]]></php>
E' stato passato un oggetto <code>$alert</code> a <code>UserFinder</code>.
- Questo invier\xE0 alcuni messaggi all'interfaccia utente.
+ Questo invierà alcuni messaggi all'interfaccia utente.
Per poter passare il test, il finder, piuttostci che propagare
un'eccezione, deve scrivere un messaggio a <code>$alert</code>.
@@ -444,29 +444,29 @@
Infine, cosa accade se il metodo che intendiamo simulare non esiste affatto?
Se si tenta di impostare un valore di ritorno su un metodo che non esiste,
SimpleTest lancia un'errore.
- Perch\xE9 non usare <code>__call()</code> per simulare dinamicamente i metodi?
+ Perché non usare <code>__call()</code> per simulare dinamicamente i metodi?
</p>
<p>
L'uso di <code>__call</code> sugli oggetti con interfacce dinamiche
- nella implementazione corrente dei mock pu\xF2 essere problematico.
- E' possibile fare il mock del metodo <code>__call()</code> ma \xE8 una soluzione
+ nella implementazione corrente dei mock può essere problematico.
+ E' possibile fare il mock del metodo <code>__call()</code> ma è una soluzione
orrenda.
- Perch\xE9 mail un test dovrebbe prendersi cura di tali dettagli di implementazione?
+ Perché mail un test dovrebbe prendersi cura di tali dettagli di implementazione?
Il test vuole solo simulare la chiamata.
</p>
<p>
- La soluzione a questo \xE8 di aggiungere metodi extra al mock durante
+ La soluzione a questo è di aggiungere metodi extra al mock durante
la sua generazione.
<php><![CDATA[
<strong>Mock::generate('DatabaseConnection', 'MockDatabaseConnection', array('setOptions'));</strong>
]]></php>
- In test suite di notevoli dimensioni questo pu\xF2 generare problemi, dal momento
- che c'\xE8 il rischio di avere gi\xE0 una classe chiamata
+ In test suite di notevoli dimensioni questo può generare problemi, dal momento
+ che c'è il rischio di avere già una classe chiamata
<code>MockDatabaseConnection</code> priva dei metodi extra.
Il code generator infatti non genera la versione mock di una classe se ne
trova un'altra con lo stesso nome.
- Vedere il proprio metodo fallire perch\xE9 un'altra definizione \xE8 stata
- invocata precedentemente pu\xF2 essere disorientante.
+ Vedere il proprio metodo fallire perché un'altra definizione è stata
+ invocata precedentemente può essere disorientante.
</p>
<p>
Per gestire questa situazione, SimpleTest permette allo sviluppatore
@@ -480,19 +480,19 @@
</p>
<p>
Gli oggetti mock possono essere utilizzati solo all'interno dei test case
- perch\xE9 inviano messaggi, come expectation, direttamente al test case.
+ perché inviano messaggi, come expectation, direttamente al test case.
Lanciarli al di fuori dell'ambiente del test case provocherebbe
un run time error non appena la prima expectation fosse invocata.
- Parleremo delle expectation pi\xF9 avanti.
+ Parleremo delle expectation più avanti.
</p>
</section>
- <section name="expectations" title="Mocks as critics">
+ <section name="expectations" title="Mock come critici">
<p>
Nonostante l'approccio dei server stub riesca ad isolare i test
- dagli sconvolgimenti del mondo, questa \xE8 solo una met\xE0 dei benefici.
+ dagli sconvolgimenti del mondo, questa è solo una metà dei benefici.
E' possibile fare in modo che la classe sotto collaudo riceva
i messaggi richiesti: ma si riesce a fargli inviare indietro quelli corretti?
- Il collaudo pu\xF2 diventare un vero inferno senza una libreria di mocking.
+ Il collaudo può diventare un vero inferno senza una libreria di mocking.
</p>
<p>
Per fare un esempio, consideriamo una semplice classe <code>PageController</code>
@@ -511,7 +511,7 @@
di ogni campo del form che non sia stato compilato correttamente.
</p>
<p>
- Il metodo che ci interessa \xE8 <code>makePayment()</code>.
+ Il metodo che ci interessa è <code>makePayment()</code>.
Se viene inserito un numero "CVV2" errato (le ultime 3 cifre
sul retro della carta di credito) si vuole che il processo di pagamento non
venga nemmeno iniziato e che venga visualizzato invece un errore.
@@ -558,7 +558,7 @@
<p>
Nel caso non si sia interessati al messaggio, come accade nel caso
di messaggi provenienti dall'interfaccia utente soggetti a molti cambiamenti,
- \xE8 possibile saltare il parametro con l'operatore "*":
+ è possibile saltare il parametro con l'operatore "*":
<php><![CDATA[
class PaymentFormFailuresShouldBeGraceful extends UnitTestCase {
@@ -572,7 +572,7 @@
function requestWithMissingCvv2() { ... }
}
]]></php>
- Possiamo rendere ancora pi\xF9 debole il test tralasciando l'array
+ Possiamo rendere ancora più debole il test tralasciando l'array
dei parametri:
<php><![CDATA[
function testMissingCvv2CausesAlert() {
@@ -582,21 +582,21 @@
$controller->makePayment($this->requestWithMissingCvv2());
}
]]></php>
- In questo modo l'unico test che verr\xE0 effettuato \xE8 sull'invocazione
- del metodo, il che pu\xF2 essere un po' eccessivo in questo caso.
- Pi\xF9 avanti vedremo come indebolire le expectation in modo pi\xF9 selettivo.
+ In questo modo l'unico test che verrà effettuato è sull'invocazione
+ del metodo, il che può essere un po' eccessivo in questo caso.
+ Più avanti vedremo come indebolire le expectation in modo più selettivo.
</p>
<p>
I test senza assert sono sia compatti che molto espressivi.
Siccome la chiamata viene intercettata mentre arriva dall'interno dell'oggetto, in questo
- caso della classe <code>Alert</code>, non c'\xE8 il bisogno di dichiarare alcun assert sul suo
+ caso della classe <code>Alert</code>, non c'è il bisogno di dichiarare alcun assert sul suo
stato.
- Non solo questo evita gli assert nei test ma anche la necessit\xE0 di aggiungere
+ Non solo questo evita gli assert nei test ma anche la necessità di aggiungere
altri accessor al codice originale.
- Nel caso ci si dovesse scoprire ad aggiungere accessor al codice, cio\xE8 quelli che
+ Nel caso ci si dovesse scoprire ad aggiungere accessor al codice, cioè quelli che
comunemente vengono chiamati "state based testing", potrebbe essere il momento di
considerare l'uso dei mock nei propri test.
- Quest'ultimo approccio \xE8 chiamato "behaviour based testing" ed \xE8 normalmente considerato
+ Quest'ultimo approccio è chiamato "behaviour based testing" ed è normalmente considerato
migliore rispetto all'uso degli accessor.
</p>
<p>
@@ -617,14 +617,14 @@
...
}
]]></php>
- Nei test pu\xF2 risultare molto difficile realizzare l'assert di una condizione negativa
+ Nei test può risultare molto difficile realizzare l'assert di una condizione negativa
ma il metodo <code>expectNever()</code> rende l'operazione semplice:
</p>
<p>
- <code>expectOnce()</code> e <code>expectNever()</code> sono pi\xF9 che sufficienti
+ <code>expectOnce()</code> e <code>expectNever()</code> sono più che sufficienti
per la maggior parte dei test ma, occasionalmente, si potrebbe aver bisogno di
- collaudare pi\xF9 eventi.
- Normalmente, a vantaggio dell'usabilit\xE0, si vuole che vengano evidenziati tutti i campi
+ collaudare più eventi.
+ Normalmente, a vantaggio dell'usabilità, si vuole che vengano evidenziati tutti i campi
non compilati del form e non solo il primo.
Allo scopo dovremmo essere in grado di eseguire chiamate multiple
a <code>Alert::warn()</code> e non solo una:
@@ -644,18 +644,18 @@
}
]]></php>
Il contatore presente in <code>expectAt()</code> rappresenta il numero
- di volte per il quale il metodo \xE8 gi\xE0 stato invocato.
- Qui si sta eseguendo un assert per ogni campo che verr\xE0 evidenziato.
+ di volte per il quale il metodo è già stato invocato.
+ Qui si sta eseguendo un assert per ogni campo che verrà evidenziato.
</p>
<p>
Si noti che siamo costretti a valutare anche l'ordine delle chiamate.
SimpleTest non prevede ancora un sistema per evitare questo inconveniente
- ma lo preveder\xE0 nelle prossime versioni.
+ ma lo prevederà nelle prossime versioni.
</p>
<p>
- Di seguito \xE8 riportato un elenco delle expectation utilizzabili su un
+ Di seguito è riportato un elenco delle expectation utilizzabili su un
oggetto mock in <a href="http://simpletest.org/">SimpleTest</a>.
- Cos\xEC come per gli assert, questi metodi accettano un parametro opzionale
+ Così come per gli assert, questi metodi accettano un parametro opzionale
con il messaggio di failure.
<table>
<thead><tr><th>Expectation</th><th>Descrizione</th></tr></thead>
@@ -674,7 +674,7 @@
</tr>
<tr>
<td><code>expectMaximumCallCount($method, $count)</code></td>
- <td>Il metodo deve essere invocato non pi\xF9 di <code>$count</code> volte</td>
+ <td>Il metodo deve essere invocato non più di <code>$count</code> volte</td>
</tr>
<tr>
<td><code>expectMinimumCallCount($method, $count)</code></td>
@@ -702,7 +702,7 @@
<dd>
L'elenco degli argomenti. E' possibile utilizzare i caratteri jolly allo
stesso modo in cui si utilizzano con <code>setReturn()</code>.
- Questo argomento \xE8 opzionale in <code>expectOnce()</code>
+ Questo argomento è opzionale in <code>expectOnce()</code>
e in <code>expectAtLeastOnce()</code>.
</dd>
<dt class="new_code">$timing</dt>
@@ -716,19 +716,19 @@
</dl>
</p>
<p>
- Nel caso si abbia una sola chiamata nel test, \xE8 bene assicurarsi
+ Nel caso si abbia una sola chiamata nel test, è bene assicurarsi
di usare <code>expectOnce</code>.<br />
L'uso di <code>$mocked->expectAt(0, 'method', 'args);</code>
consertirebbe al metodo di non essere mai invocato.
Il controllo degli argomenti ed il controllo del numero totale di chiamate
sono operazioni indipendenti.
Quando si usa <code>expectAt()</code>, deve essere aggiunta la chiamata a <code>expectCallCount()</code>
- altrimenti risulter\xE0 consentito non invocare mai il metodo.
+ altrimenti risulterà consentito non invocare mai il metodo.
</p>
<p>
Come per gli assert nei test case, tutte le expectation accettano come terzo parametro un
messaggio con il quale sovrascrivere il messaggio di default.
- Come nell'altro caso, inoltre, il messaggio di default pu\xF2 essere
+ Come nell'altro caso, inoltre, il messaggio di default può essere
recuperato mediante "%s".
</p>
</section>
Modified: simpletest/trunk/docs/source/it/mock_objects_tutorial.xml
===================================================================
--- simpletest/trunk/docs/source/it/mock_objects_tutorial.xml 2009-09-08 15:10:43 UTC (rev 1950)
+++ simpletest/trunk/docs/source/it/mock_objects_tutorial.xml 2009-09-14 16:14:29 UTC (rev 1951)
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
<!-- $Id: mock_objects_tutorial.xml 1891 2009-07-26 12:32:26Z lastcraft $ -->
-<page title="Mock Objects" here="Using mock objects">
+<page title="Gli oggetti mock" here="Tutorial: gli oggetti mock">
<long_title>PHP unit testing tutorial - Using mock objects in PHP</long_title>
<content>
<section name="refactor" title="Refactoring the tests again">
Modified: simpletest/trunk/docs/source/it/overview.xml
===================================================================
--- simpletest/trunk/docs/source/it/overview.xml 2009-09-08 15:10:43 UTC (rev 1950)
+++ simpletest/trunk/docs/source/it/overview.xml 2009-09-14 16:14:29 UTC (rev 1951)
@@ -1,20 +1,20 @@
<?xml version="1.0"?>
<!-- $Id: overview.xml 1893 2009-07-26 13:52:26Z lastcraft $ -->
-<page title="Overview of SimpleTest" here="Overview">
+<page title="Panoramica su SimpleTest" here="Panoramica su SimpleTest">
<long_title>
Panoramica ed elenco delle caratteristiche dello unit tester e del web tester di SimpleTest
</long_title>
<content>
- <section name="summary" title="What is SimpleTest?">
+ <section name="summary" title="Cos'è SimpleTest?">
<p>
- Il cuore di SimpleTest \xE8 un framework costruito intorno a classi
+ Il cuore di SimpleTest è un framework costruito intorno a classi
di test case. Queste ereditano delle classi test case di base
e vengono estese con dei metodi che contengono il codice di collaudo.
- Ogni metodo di test di una classe test case \xE8 concepito per invocare
+ Ogni metodo di test di una classe test case è concepito per invocare
una serie di metodi assert, come <code>assertEqual()</code>, che lo sviluppatore
si attende vengano confermati.
Se il risultato atteso viene confermato allora successo dell'operazione
- viene comunicato al test reporter che \xE8 in ascolto mentre qualsiasi
+ viene comunicato al test reporter che è in ascolto mentre qualsiasi
insuccesso o qualsiasi eccezione inattesa scatena un alert con la
relativa descrizione della discordanza.
@@ -25,12 +25,12 @@
</p>
<p>
Nonostante i molti sforzi intrapresi per mantenere la
- compatibilit\xE0 tra le varie versioni, la presente documentazione si riferisce
+ compatibilità tra le varie versioni, la presente documentazione si riferisce
alla versione 1.1 di SimpleTest.
Nel caso si rilevi un malfunzionamento nei test dopo un aggiornamento,
si provi a consultare i file "HELP_MY_TESTS_DONT_WORK_ANYMORE" nella
- directory simpletest per accertarsi della possibilit\xE0 che una delle feature che si stanno utilizzando
+ directory simpletest per accertarsi della possibilità che una delle feature che si stanno utilizzando
sia stata rimossa o indicata come deprecata.
</p>
<p>
@@ -52,44 +52,44 @@
]]></php>
</p>
<p>
- SimpleTest \xE8 pensato per essere utilizzato da sviluppatori.
+ SimpleTest è pensato per essere utilizzato da sviluppatori.
I destinatari di questo tool includono tutti gli sviluppatori
di applicazioni PHP di medie dimensioni, compresi gli sviluppatori
che si sono avvicinati da poco all'argomento dello unit testing e del
web regression testing.
- I principi cardine di SimpleTest sono la sua facilit\xE0 d'uso, l'estendibilit\xE0 e
- l'essenzialit\xE0 delle sue caratteristiche.
+ I principi cardine di SimpleTest sono la sua facilità d'uso, l'estendibilità e
+ l'essenzialità delle sue caratteristiche.
</p>
<p>
- I test vengono scritti direttamente in PHP, cio\xE8 nel linguaggio principale dell'applicazione.
+ I test vengono scritti direttamente in PHP, cioè nel linguaggio principale dell'applicazione.
Il vantaggio nell'uso del PHP come linguaggio di testing risiede nel
- non dover imparare un nuovo linguaggio e nelle possibilit\xE0 di iniziare
+ non dover imparare un nuovo linguaggio e nelle possibilità di iniziare
immediatamente ad implementare i test e da permettere allo sviluppatore di
collaudare uan qualsiasi parte del codice.
- Fondamentalmente, qualsiasi sezione possa essere raggiunto dal codice dell'applicazione pu\xF2
+ Fondamentalmente, qualsiasi sezione possa essere raggiunto dal codice dell'applicazione può
essere anche raggiunta dal codice di test dal momento che entrambi utilizzano il
medesimo linguaggio di programmazione.
</p>
<p>
- Il tipo pi\xF9 semplice di case test \xE8 lo
+ Il tipo più semplice di case test è lo
<a local="unit_tester_documentation">UnitTestCase</a>.
Questa classe comprende i test standard per valutare l'uguaglianza di valori e
riferimenti e il matching con pattern.
Tutti questi test eseguono delle verifiche sui valori attesi come ritorno di
funzioni e metodi.
- Si tratta senz'altro del tipo pi\xF9 comune di test nell'attivit\xE0 quotidiana di sviluppo
+ Si tratta senz'altro del tipo più comune di test nell'attività quotidiana di sviluppo
e costituiscono il 95% dei test case.
</p>
<p>
- Tuttavia, l'obiettivo principale di un'applicazione web non \xE8 quello di
+ Tuttavia, l'obiettivo principale di un'applicazione web non è quello di
produrre gli output corretti dai suoi metodi e dai suoi oggetti ma quello
di generare pagine web.
La classe <a local="web_tester_documentation">WebTestCase</a> collauda le pagine web.
- Simula l'attivit\xE0 di un browser che stia richiedendo una pagina e supporta cookie, proxy,
+ Simula l'attività di un browser che stia richiedendo una pagina e supporta cookie, proxy,
connessioni sicure, autenticazione, form, frame e molti altri elementi di navigazione.
- Con questa tipologia di test case lo sviluppatore pu\xF2 verificare che le informazioni
+ Con questa tipologia di test case lo sviluppatore può verificare che le informazioni
presenti sulla pagina, sul form e nelle sessioni siano manipolate in modo corretto.
</p>
@@ -114,15 +114,15 @@
]]></php>
</p>
</section>
- <section name="features" title="Feature list">
+ <section name="features" title="Elenco delle caratteristiche">
<p>
- Quanto segue \xE8 una grossolana panoramica delle caratteristiche esistenti e
+ Quanto segue è una grossolana panoramica delle caratteristiche esistenti e
pianificate per SimpleTest con l'indicazione del momento previsto per il loro rilascio.
- C'\xE8 la possibilit\xE0 che questo elenco possa cambiare senza preavviso dal momento che
+ C'è la possibilità che questo elenco possa cambiare senza preavviso dal momento che
le milestone dipendono essenzialmente sul tempo libero che ho a disposizione.
- Gli elementi colorati in verde sono gi\xE0 stati sviluppati ma non sono stati necessariamente
+ Gli elementi colorati in verde sono già stati sviluppati ma non sono stati necessariamente
rilasciati. Nel caso ci sia la particolare urgenza di accedere ad una
- feature gi\xE0 svilupata ma non ancora rilasciata \xE8 possibile eseguire un checkout
+ feature già svilupata ma non ancora rilasciata è possibile eseguire un checkout
direttamente dal server SVN di Sourceforge.
<table><thead>
<tr><th>Feature</th><th>Descrizione</th><th>Release</th></tr>
@@ -133,7 +133,7 @@
</tr>
<tr>
<td>Reportistica Html</td>
- <td>Il tipo di visualizzazione pi\xF9 semplice</td>
+ <td>Il tipo di visualizzazione più semplice</td>
<td style="color: green;">1.0</td>
</tr>
<tr>
@@ -161,7 +161,7 @@
<td>Mock parziali</td>
<td>
Eseguono il mocking di parte in una classe per permettere il
- collaudo di elementi pi\xF9 piccoli di una classe e simulazioni
+ collaudo di elementi più piccoli di una classe e simulazioni
particolarmente complesse.
</td>
<td style="color: green;">1.0</td>
@@ -178,7 +178,7 @@
</tr>
<tr>
<td>Parsing dei form</td>
- <td>Capacit\xE0 di compilare semplici form e leggere i loro valori di default</td>
+ <td>Capacità di compilare semplici form e leggere i loro valori di default</td>
<td style="color: green;">1.0</td>
</tr>
<tr>
@@ -202,7 +202,7 @@
<td>Browser component</td>
<td>
Espone un'interfaccia di basso livello per accedere al web browser ed eseguire
- case test pi\xF9 dettagliati
+ case test più dettagliati
</td>
<td style="color: green;">1.0</td>
</tr>
@@ -259,7 +259,7 @@
<td style="color: green;">1.0.1</td>
</tr>
<tr>
- <td>Conformit\xE0 alla direttiva E_STRICT di PHP 5</td>
+ <td>Conformità alla direttiva E_STRICT di PHP 5</td>
<td>Versione per PHP 5 in grado di funzionare con il livello di errore E_STRICT</td>
<td style="color: red;">1.1</td>
</tr>
@@ -280,7 +280,7 @@
</tr>
<tr>
<td>Fluent mock interface</td>
- <td>Oggetti mock ancora pi\xF9 flessibili e compatti</td>
+ <td>Oggetti mock ancora più flessibili e compatti</td>
<td style="color: red;">1.6</td>
</tr>
<tr>
@@ -290,7 +290,7 @@
</tr>
<tr>
<td>Selettori CSS</td>
- <td>Il contenuto HTML generato pu\xF2 essere analizzato utilizzando i selettori CSS</td>
+ <td>Il contenuto HTML generato può essere analizzato utilizzando i selettori CSS</td>
<td style="color: red;">1.7</td>
</tr>
<tr>
@@ -325,7 +325,7 @@
</tr>
<tr>
<td>Vecchi metodi segnati come deprecati</td>
- <td>SimpleTest2 possiede un'interfaccia pi\xF9 semplice</td>
+ <td>SimpleTest2 possiede un'interfaccia più semplice</td>
<td style="color: red;">2.0</td>
</tr>
<tr>
@@ -334,8 +334,8 @@
<td style="color: red;">3.0</td>
</tr>
</tbody></table>
- L'integrazione con PHP 5 \xE8 completa il che significa che a partire dalla
- versione 1.1 di SimpleTest verr\xE0 supportato solo PHP versione 5.0.5 o superiore.
+ L'integrazione con PHP 5 è completa il che significa che a partire dalla
+ versione 1.1 di SimpleTest verrà supportato solo PHP versione 5.0.5 o superiore.
Le precedenti versioni di SimpleTest sono compatibili con PHP dalla versione 4.2
alla versione 5 (non E_STRICT).
</p>
@@ -405,4 +405,4 @@
</author>
</authorgroup>
</refsynopsisdiv>
-</page>
+</page>
\ No newline at end of file
Modified: simpletest/trunk/docs/source/it/partial_mocks_documentation.xml
===================================================================
--- simpletest/trunk/docs/source/it/partial_mocks_documentation.xml 2009-09-08 15:10:43 UTC (rev 1950)
+++ simpletest/trunk/docs/source/it/partial_mocks_documentation.xml 2009-09-14 16:14:29 UTC (rev 1951)
@@ -1,34 +1,34 @@
<?xml version="1.0"?>
<!-- $Id: partial_mocks_documentation.xml 1874 2009-06-12 16:17:51Z pp11 $ -->
-<page title="Partial mock objects documentation" here="Partial mocks">
+<page title="Il mocking parziale" here="Il mocking parziale">
<long_title>SimpleTest for PHP partial mocks documentation</long_title>
<content>
<introduction>
<p>
- Il mocking parziale non \xE8 nient'altro che un pattern per facilitare la
+ Il mocking parziale non è nient'altro che un pattern per facilitare la
risoluzione di alcuni problemi specifici che si incontrano nel collaudo con oggetti mock
e in cui l'uso degli oggetti mock diviene assai difficoltoso.
- Si tratta di un tool abbastanza limitato e probabilmente non \xE8 nemmeno
+ Si tratta di un tool abbastanza limitato e probabilmente non è nemmeno
un'idea brillante.
- E' stato incluso comunque in SimpleTest perch\xE9 l'ho personalmente trovato
- utile in pi\xF9 occasioni e mi ha permesso di risparmiare molto tempo..
+ E' stato incluso comunque in SimpleTest perché l'ho personalmente trovato
+ utile in più occasioni e mi ha permesso di risparmiare molto tempo..
</p>
</introduction>
- <section name="inject" title="The mock injection problem">
+ <section name="inject" title="Il problema del Mock Injection">
<p>
- Quando un oggetto ne uso un altro \xE8 semplicissimo passarli una versione mock
- gi\xE0 decorata con le sue expectation.
- Le cose diventano molto pi\xF9 complicate quando \xE8 un oggetto ne crea un altro
- e l'oggetto creatore \xE8 quello che si deve collaudare.
- Questo significa che \xE8 l'oggetto creato che dovrebbe essere sostituito dalla
- versione mock: ma pu\xF2 essere difficile impartire alla classe sotto test l'ordine
+ Quando un oggetto ne uso un altro è semplicissimo passarli una versione mock
+ già decorata con le sue expectation.
+ Le cose diventano molto più complicate quando è un oggetto ne crea un altro
+ e l'oggetto creatore è quello che si deve collaudare.
+ Questo significa che è l'oggetto creato che dovrebbe essere sostituito dalla
+ versione mock: ma può essere difficile impartire alla classe sotto test l'ordine
di creare una versione mock invece dell'originale.
Del resto, la classe sotto test nemmeno dovrebbe essere a conoscenza
di essere eseguita all'interno di un test.
</p>
<p>
Per esempio, supponiamo che si stia scrivendo un client telnet e
- che ci sia la necessit\xE0 di creare un socket a cui passare i messaggi.
+ che ci sia la necessità di creare un socket a cui passare i messaggi.
Il metodo di connessione potrebbe avere un aspetto simile a questo:
<php><![CDATA[
<strong><?php
@@ -47,13 +47,13 @@
Se volessimo avere una versione mock del socket, cosa si potrebbe fare?
</p>
<p>
- La prima soluzione \xE8 quella di passare il socket come parametro,
+ La prima soluzione è quella di passare il socket come parametro,
in mododi forzare la creazione al livello superiore.
- Il fatto che sia il client a dover gestire la creazione \xE8 un buon approccio
- se si \xE8 disposti a gestire la cosa e dovrebbe spingere verso una
+ Il fatto che sia il client a dover gestire la creazione è un buon approccio
+ se si è disposti a gestire la cosa e dovrebbe spingere verso una
fattorizazione della creazione.
- Difatti, questo \xE8 uno dei sistemi con i quali il test con i mock object
- costringono lo sviluppatore a sviluppare adottando soluzioni pi\xF9 rigorose.
+ Difatti, questo è uno dei sistemi con i quali il test con i mock object
+ costringono lo sviluppatore a sviluppare adottando soluzioni più rigorose.
I mock migliorano lo stile di programmazione.
</p>
<p>
@@ -71,7 +71,7 @@
}
?>
]]></php>
- Ci\xF2 significa che il codice di test si riduce all'invocazione
+ Ciò significa che il codice di test si riduce all'invocazione
tipica degli oggetti mock:
<php><![CDATA[
class TelnetTest extends UnitTestCase {
@@ -85,14 +85,14 @@
}
}
]]></php>
- E' abbastanza evidente, tuttavia, che un unico livello \xE8 tutto quello che
- ci si pu\xF2 aspettare di ottenere. Difficilmente accetteremo che l'applicazione
+ E' abbastanza evidente, tuttavia, che un unico livello è tutto quello che
+ ci si può aspettare di ottenere. Difficilmente accetteremo che l'applicazione
stessa debba preoccuparsi della creazione di socket, connessione al database
ed altri oggetti necessari ai livelli sottostanti.
Sarebbe difficile anche conoscere i parametri necessari ai costruttori.
</p>
<p>
- Un possibilecompromesso \xE8 quello di prevedere l'oggetto istanziato come
+ Un possibilecompromesso è quello di prevedere l'oggetto istanziato come
parametro opzionale:
<php><![CDATA[
<?php
@@ -111,7 +111,7 @@
}
?>
]]></php>
- Come soluzione di emergenza questo pu\xF2 anche andare bene.
+ Come soluzione di emergenza questo può anche andare bene.
Adesso il test funziona come se il parametro fosse formalmente
passato:
<php><![CDATA[
@@ -126,15 +126,15 @@
}
}
]]></php>
- Il problema di questo approccio \xE8 nel disordine che
+ Il problema di questo approccio è nel disordine che
genera.
- Nella classe principale c'\xE8 del codice di test e nel codice di test
+ Nella classe principale c'è del codice di test e nel codice di test
ci sono dei paramtri che non vengono mai utilizzati.
- E' un approccio veloce e sporco, ma nonostante tutto pu\xF2 essere
+ E' un approccio veloce e sporco, ma nonostante tutto può essere
efficace in molte situazioni.
</p>
<p>
- Un'ulteriore soluzione \xE8 quella di passare un oggetto factory a cui
+ Un'ulteriore soluzione è quella di passare un oggetto factory a cui
demandare la creazione:
<php><![CDATA[
<?php
@@ -154,10 +154,10 @@
}
?>
]]></php>
- Questa \xE8 probabilmente la soluzione pi\xF9 fattorizzata dal momento che
- la creazione degli oggetti \xE8 stata spostata all'interno di una
+ Questa è probabilmente la soluzione più fattorizzata dal momento che
+ la creazione degli oggetti è stata spostata all'interno di una
piccola classe specializzata.
- Adesso il factory della rete pu\xF2 essere collaudato separatamente dal
+ Adesso il factory della rete può essere collaudato separatamente dal
resto ma risulta anche semplice crearne un mock nel momento del collaudo
della classe telnet:
<php><![CDATA[
@@ -174,18 +174,18 @@
}
}
]]></php>
- Il rovescio della medaglia \xE8 che si sono aggiunte molte classi
+ Il rovescio della medaglia è che si sono aggiunte molte classi
alla libreria e che si stanno passando molte classi factory in qua
- e l\xE0 ed il codice diventa un po' meno intuitivo.
- Questa \xE8 la soluzione pi\xF9 flessibile ma anche la pi\xF9 complessa.
+ e là ed il codice diventa un po' meno intuitivo.
+ Questa è la soluzione più flessibile ma anche la più complessa.
</p>
<p>
Esiste una via di mezzo?
</p>
</section>
- <section name="creation" title="Protected factory method">
+ <section name="creation" title="Il pattern Protected Factory">
<p>
- Esiste un sistema con cui \xE8 possibile circoscrivere il problema
+ Esiste un sistema con cui è possibile circoscrivere il problema
senza creare nuove classi ma prevede l'utilizzo di una sottoclasse
della classe originale nel test.
Intanto, spostiamo la creazione del socket in un metodo dedicato:
@@ -207,7 +207,7 @@
}
?>
]]></php>
- Questo \xE8 l'unico cambiamento richiesto al codice dell'applicazione.
+ Questo è l'unico cambiamento richiesto al codice dell'applicazione.
</p>
<p>
Nel test case si deve creare una sottoclasse in modo da poter
@@ -226,12 +226,12 @@
}
}</strong>
]]></php>
- Qui il mock \xE8 stato passato al costruttore ma un
+ Qui il mock è stato passato al costruttore ma un
ordinario metodo setter avrebbe svolto ugualmente il
medesimo compito.
- Si noti come il mock \xE8 stato iniettato dentro l'oggetto
+ Si noti come il mock è stato iniettato dentro l'oggetto
prima della chiamata del costruttore.
- Questo \xE8 necessario nel caso il costruttore faccia
+ Questo è necessario nel caso il costruttore faccia
chiamate a <code>connect()</code>. In caso
contrario <code>_createSocket()</code> avrebbe restituito
al costruttore un valore nullo
@@ -239,7 +239,7 @@
</p>
<p>
Dopo il completamento di tutto questo lavoro extra,
- il test in se' \xE8 diascretamente pi\xF9 semplice.
+ il test in se' è diascretamente più semplice.
E' sufficiente colaudare la nuova classe invece di
quella originale:
<php><![CDATA[
@@ -254,24 +254,24 @@
}
}
]]></php>
- La nuova classe, naturalmente, \xE8 molto semplice.
- Semplicemente imposter\xE0 un valore di ritorno, come un mock.
+ La nuova classe, naturalmente, è molto semplice.
+ Semplicemente imposterà un valore di ritorno, come un mock.
Sarebbe bello se, oltre a questo, verificasse anche i parametri
ricevuti. Proprio come un mock.
Visto che sembra useremo spesso questa tecnica,
possiamo automatizzare la creazione della sottoclasse?
</p>
</section>
- <section name="partial" title="A partial mock">
+ <section name="partial" title="Un mock parziale">
<p>
- Naturalmente la risposta \xE8 "s\xEC", altrimenti avrei smesso di
+ Naturalmente la risposta è "sì", altrimenti avrei smesso di
scrivere da un pezzo!
L'ultimo test che abbiamo scritto ha comportato un bel po' di lavoro
ma si potrebbe utilizzare un approccio simile alla generazione
degli oggetti mock per creare la sottoclasse.
</p>
<p>
- Questa \xE8 la versione del test con il mocking parziale:
+ Questa è la versione del test con il mocking parziale:
<php><![CDATA[
<strong>Mock::generatePartial(
'Telnet',
@@ -291,7 +291,7 @@
}
}
]]></php>
- Il mock parziale \xE8 una sottoclasse della classe originale
+ Il mock parziale è una sottoclasse della classe originale
nella quale alcuni metodi sono sostituiti con
versioni di test.
<code>generatePartial()</code> accetta tre parametri: la
@@ -299,20 +299,20 @@
un elenco dei metodi da sostituire.
</p>
<p>
- Il modo di istanziare gli oggetti risultati \xE8 un po' delicato.
+ Il modo di istanziare gli oggetti risultati è un po' delicato.
L'unico parametro atteso dal costruttore di un mock parziale
- \xE8 un riferimento allo unit test. Cos\xEC come gli ordinari oggetti
- mock, infatti, questo \xE8 necesssario affinch\xE9 l'oggetto possa restituire
+ è un riferimento allo unit test. Così come gli ordinari oggetti
+ mock, infatti, questo è necesssario affinché l'oggetto possa restituire
i risultati delle expectation valutate.
</p>
<p>
- Il costruttore originale non \xE8 stato ancora invocato.
- E' necessario rimandare la sua invocazione perch\xE9
+ Il costruttore originale non è stato ancora invocato.
+ E' necessario rimandare la sua invocazione perché
potrebbe fare uso di uno dei metodi sostituiti ancora non
impostati.
Si impostano quindi i valori di ritorno e solo a questo punto
si invoca il costruttore con i suoi parametri.
- Quello che distingue i mock parziali dai mock ordinari \xE8 la
+ Quello che distingue i mock parziali dai mock ordinari è la
successione di questi tre passi: costruzione con "new",
impostazione dei metodi, invocazione del costruttore vero e proprio.
</p>
@@ -339,28 +339,28 @@
]]></php>
</p>
</section>
- <section name="less" title="Testing less than a class">
+ <section name="less" title="Collaudare meno di una classe">
<p>
- Non \xE8 necessario che i metodi sostituiti siano metodi factory: \xE8 possibile
+ Non è necessario che i metodi sostituiti siano metodi factory: è possibile
sostituire qualsiasi tipologia di metodo.
- Questo \xE8 il modo in cui i mock parziali permettono di prendere
+ Questo è il modo in cui i mock parziali permettono di prendere
il controllo di qualsiasi parte di una classe, eslcuso il costruttore.
Sarebbe perfino possibile sostituire tutti i metodi tranne
l'unico da collaudare.
</p>
<p>
- Quest'ultima situazione \xE8 piuttosto ipotetica dal momento che
+ Quest'ultima situazione è piuttosto ipotetica dal momento che
non l'ho mai provata.
Posso anche credere che questo funzioni ma sono convinto che
- forzando la granularit\xE0 dell'oggetto non si ottengano necessariamente un
- codice di qualit\xE0 migliore.
+ forzando la granularità dell'oggetto non si ottengano necessariamente un
+ codice di qualità migliore.
Personalmente utilizzo il mocking parziale come un sistema per
l'override della creazione di oggetti o per l'occasionale test
di oggetti che implementino il design TemplateMethod.
</p>
<p>
- Quale meccanismo utilizzare, alla fine, \xE8 una questione legata allo standard che
- si \xE8 scelto per i propri progetti.
+ Quale meccanismo utilizzare, alla fine, è una questione legata allo standard che
+ si è scelto per i propri progetti.
</p>
</section>
</content>
Modified: simpletest/trunk/docs/source/it/reporter_documentation.xml
===================================================================
--- simpletest/trunk/docs/source/it/reporter_documentation.xml 2009-09-08 15:10:43 UTC (rev 1950)
+++ simpletest/trunk/docs/source/it/reporter_documentation.xml 2009-09-14 16:14:29 UTC (rev 1951)
@@ -1,48 +1,47 @@
<?xml version="1.0"?>
<!-- $Id: reporter_documentation.xml 1878 2009-06-12 16:39:37Z pp11 $ -->
-<page title="Test reporter documentation" here="Reporting">
+<page title="I report" here="I report">
<long_title>SimpleTest for PHP test runner and display documentation</long_title>
<content>
<introduction>
<p>
- SimpleTest pretty much follows the MVC pattern
+ SimpleTest abbraccia abbastanza fedelmente il pattern MVC
(Model-View-Controller).
- The reporter classes are the view and the model is your
- test cases and their hiearchy.
- The controller is mostly hidden from the user of
- SimpleTest unless you want to change how the test cases
- are actually run, in which case it is possible to
- override the runner objects from within the test case.
- As usual with MVC, the controller is mostly undefined
- and there are other places to control the test run.
+ Le classi reporter sono le viste mentre i test case e le loro
+ gerarchie sono i modelli.
+ I controller sono per lo più nascosti all'utente di SimpleTest a
+ meno che si voglia modificare il meccanismo di esecuzione dei
+ test, nel qual caso risulta possibile sovrascivere l'oggetto
+ in esecuzione dall'interno del test case.
+ Come accade di solito con l'MVC, il controller e per lo più
+ vuoto e si controlla l'esecuzione del test da altri posti.
</p>
</introduction>
- <section name="html" title="Reporting results in HTML">
+ <section name="html" title="Visualizzare i report in HTML">
<p>
- The default test display is minimal in the extreme.
- It reports success and failure with the conventional red and
- green bars and shows a breadcrumb trail of test groups
- for every failed assertion.
- Here's a fail...
+ Il sistema di visualizzazione standard è minimale.
+ Si limita a riportare successi e fallimenti con le convenzionali
+ barre verdi e rosse e mostra un percorso (breadcrumb) dei gruppi di test
+ per ogni assert fallito.
+ Un esempio di test fallito è:
<div class="demo">
<h1>File test</h1>
<span class="fail">Fail</span>: createnewfile->True assertion failed.<br />
<div style="padding: 8px; margin-top: 1em; background-color: red; color: white;">1/1 test cases complete.
<strong>0</strong> passes, <strong>1</strong> fails and <strong>0</strong> exceptions.</div>
</div>
- And here all tests passed...
+ Questo è il caso in cui tutti i test siano usciti con successo:
<div class="demo">
<h1>File test</h1>
<div style="padding: 8px; margin-top: 1em; background-color: green; color: white;">1/1 test cases complete.
<strong>1</strong> passes, <strong>0</strong> fails and <strong>0</strong> exceptions.</div>
</div>
- The good news is that there are several points in the display
- hiearchy for subclassing.
+ La buona notizia è che esistono molte classi della gerarchia del
+ reporter da cui poter ereditare:
</p>
<p>
- For web page based displays there is the
- <code>HtmlReporter</code> class with the following
- signature...
+ Per la visualizzazione su pagine web si può usare la classe
+ <code>HtmlReporter</code> che ha la seguente interfaccia:
<php><![CDATA[
class HtmlReporter extends SimpleReporter {
public HtmlReporter($encoding) { ... }
@@ -71,120 +70,125 @@
public integer getTestCaseProgress() { ... }
}
]]></php>
- Here is what some of these methods mean. First the display methods
- that you will probably want to override...
+ Di seguito si riporta il significato dei vari metodi. Sono stati riportati
+ prima i metodi di visualizzazione dal momento che sono quelli che normalmente
+ si vuole riscrivere:
<ul class="api">
<li>
<code>HtmlReporter(string $encoding)</code><br />
- is the constructor.
- Note that the unit test sets up the link to the display
- rather than the other way around.
- The display is a mostly passive receiver of test events.
- This allows easy adaption of the display for other test
- systems beside unit tests, such as monitoring servers.
- The encoding is the character encoding you wish to
- display the test output in.
- In order to correctly render debug output when
- using the web tester, this should match the encoding
- of the site you are trying to test.
- The available character set strings are described in
- the PHP <a href="http://www.php.net/manual/en/function.htmlentities.php">html_entities()</a>
- function.
+ è il costruttore.
+ Si noti che è lo unit test a conservare un riferimento
+ al reporter, e non il contrario.
+ Il reporter è sostanzialmente un ricevitore passivo di
+ eventi di test.
+ Questo garantisce un facile adattamento del display ad altri
+ sistemi di test diversi dagli unit test, come ad esempio i
+ server di monitoraggio.
+ L'encoding è il sistema di codifica di caratteri che si vuole
+ venga usato nella visualizzazione dei report.
+ Per garantire che i messaggi di debug vengano visualizzati
+ correttamento durante il web testing, ci si dovrebbe assicurare
+ che la codifica dei caratteri coincida con quella usata nel sito
+ che si sta collaudando.
+ Le stringhe corrispondenti alle codifiche carattere sono
+ descritte nella documentazione della funzione
+ <a href="http://www.php.net/manual/en/function.htmlentities.php">html_entities()</a>.
</li>
<li>
<code>void paintHeader(string $test_name)</code><br />
- is called once at the very start of the test when the first
- start event arrives.
- The first start event is usually delivered by the top level group
- test and so this is where <code>$test_name</code>
- comes from.
- It paints the page titles, CSS, body tag, etc.
- It returns nothing (<code>void</code>).
+ E' invocata all'inizio dei test non appena viene ricevuto
+ il primo evento di inizio test.
+ L'evento di inizio test è normalmente generato dal primo gruppo di test
+ ed è questo che fornisce <code>$test_name</code>.
+ Questo metodo visualizza il titolo della pagina, i CSS, il tag body e così via.
+ Non restituisce niente.
</li>
<li>
<code>void paintFooter(string $test_name)</code><br />
- Called at the very end of the test to close any tags opened
- by the page header.
- By default it also displays the red/green bar and the final
- count of results.
- Actually the end of the test happens when a test end event
- comes in with the same name as the one that started it all
- at the same level.
- The tests nest you see.
- Closing the last test finishes the display.
+ Viene invocato al termine del test e si preoccupa di chiudere
+ qualsiasi tag sia stato aperto dall'header della pagina.
+ Di default, mostra anche le barre verdi e rosse e il conteggio
+ finale dei risultati.
+ Per essere più precisi, la fine dei test è individuata dalla ricezione
+ di un evento di fine test avente lo stesso nome del test con il quale
+ si è iniziato l'intero processo al medesimo livello. I test, infatti,
+ possono essere annidati.
+ La chiusura dell'ultimo test fa terminare il display.
</li>
<li>
<code>void paintMethodStart(string $test_name)</code><br />
- is called at the start of each test method.
- The name normally comes from method name.
- The other test start events behave the same way except
- that the group test one tells the reporter how large
- it is in number of held test cases.
- This is so that the reporter can display a progress bar
- as the runner churns through the test cases.
+ Viene invocato all'inizio di ciascun metodo di test.
+ Il nome, normalmente, coincide con il nome del metodo.
+ Gli altri eventi di inizio test producono il medesimo comportamento
+ tranne per il fatto che il primo gruppo di test comunica al reporter
+ il numero di test case che contiene.
+ In questo modo il reporter può essere in grado di visualizzare
+ una barra di progressione mentre il motore macina i test case.
</li>
<li>
<code>void paintMethodEnd(string $test_name)</code><br />
- backs out of the test started with the same name.
+ resti
+ termina il test che era stato iniziato con il medesimo nome.
</li>
<li>
<code>void paintFail(string $message)</code><br />
- paints a failure.
- By default it just displays the word fail, a breadcrumbs trail
- showing the current test nesting and the message issued by
- the assertion.
+ visualizza una failure.
+ Il comportamento standard è quello di visualizzare la parola fail, un
+ indicatore della progressione indicante il test annidato ed il messaggio
+ riportato dall'assert.
</li>
<li>
<code>void paintPass(string $message)</code><br />
- by default does nothing.
+ Di default non fa niente.
</li>
<li>
<code>string getCss()</code><br />
- Returns the CSS styles as a string for the page header
- method.
- Additional styles have to be appended here if you are
- not overriding the page header.
- You will want to use this method in an overriden page header
- if you want to include the original CSS.
+ restituisce gli stili CSS come un'unica striga per il metodo
+ dell'header della pagina.
+ Gli stili addizionali possono essere appesi qui a meno che
+ non si voglia fare l'overriding dell'header della pagina.
+ Se si è sovrascritto il page header, si può richiamare questo metodo per recuperare
+ il CSS originale.
</li>
</ul>
- There are also some accessors to get information on the current
- state of the test suite.
- Use these to enrich the display...
+ Ci sono a disposizione anche alcuni metodi get che permettono di
+ recuperare informazioni sullo stato corrente della test suite.
+ Si utilizzano per arricchire la visualizzazione:
<ul class="api">
<li>
<code>array getTestList()</code><br />
- is the first convenience method for subclasses.
- Lists the current nesting of the tests as a list
- of test names.
- The first, most deeply nested test, is first in the
- list and the current test method will be last.
+ è il primo metodo di appoggio per il subclassing.
+ Restituisce l'attuale struttura annidata dei test come un
+ elenco di nomi di test.
+ Il test più profondamente annidato risulterà il primo
+ dell'elenco e il metodo correntemente eseguito l'ultimo.
</li>
<li>
<code>integer getPassCount()</code><br />
- returns the number of passes chalked up so far.
- Needed for the display at the end.
+ restituisce il numero di passi eseguiti.
+ E' necessario per chiudere la visualizzazione.
</li>
<li>
<code>integer getFailCount()</code><br />
- is likewise the number of fails so far.
+ restituisce, analogamente, il numero dei fallimenti.
</li>
<li>
<code>integer getExceptionCount()</code><br />
- is likewise the number of errors so far.
+ Similmente a sopra, restituisce il numero delle eccezioni.
</li>
<li>
<code>integer getTestCaseCount()</code><br />
- is the total number of test cases in the test run.
- This includes the grouping tests themselves.
+ Restituisce il numero dei test case totale.
+ Il conteggio include anche i gruppi di test.
</li>
<li>
<code>integer getTestCaseProgress()</code><br />
- is the number of test cases completed so far.
+ Restituisce il numero di test completati.
</li>
</ul>
- One simple modification is to get the HtmlReporter to display
- the passes as well as the failures and errors...
+ Una delle modifiche semplici da effettuare è quella di fare in modo
+ che HtmlReported visualizzi anche i normali passi oltre che agli errori
+ e alle failure:
<php><![CDATA[
<strong>class ShowPasses extends HtmlReporter {
@@ -204,38 +208,33 @@
]]></php>
</p>
<p>
- One method that was glossed over was the <code>makeDry()</code>
- method.
- If you run this method, with no parameters, on the reporter
- before the test suite is run no actual test methods
- will be called.
- You will still get the events of entering and leaving the
- test methods and test cases, but no passes or failures etc,
- because the test code will not actually be executed.
+ Un metodo sul quale si è sorvolato è <code>makeDry()</code>.
+ Quando viene invocato senza parametri prima del lancio dei test,
+ la sua esecuzione inibisce l'avvio dei test.
+ Tuttavia, si continueranno a ricevere gli eventi di inizio e fine dei
+ test e dei test case, ma nessun evento di successo o fallimento, poichè
+ il codice dei test non verrà fisicamente eseguito.d.
</p>
<p>
- The reason for this is to allow for more sophistcated
- GUI displays that allow the selection of individual test
- cases.
- In order to build a list of possible tests they need a
- report on the test structure for drawing, say a tree view
- of the test suite.
- With a reporter set to dry run that just sends drawing events
- this is easily accomplished.
+ Il motivo per cui esiste un tale metodo è legato alla possibilità
+ di costruire GUI particolarmente sofisticate che permettano di
+ selezionare individualmente i case test.
+ Con un reporter impostato in dry run cge unvia solo eventi di visualizzazione
+ questo è facilmente ottenibile.
</p>
</section>
- <section name="other" title="Extending the reporter">
+ <section name="other" title="Visualizzare i risultati in altri formati">
<p>
- Rather than simply modifying the existing display, you might want to
- produce a whole new HTML look, or even generate text or XML.
- Rather than override every method in
- <code>HtmlReporter</code> we can take one
- step up the class hiearchy to <code>SimpleReporter</code>
- in the <em>simple_test.php</em> source file.
+ Piuttosto che modificare il display esistente si potrebbe desiderare
+ di produrre un HTML completamente diverso o perfino generare un
+ output testuale o in XML.
+ Piuttosto che sovrascrivere ogni singolo metodi in, è possibile
+ salire di un passo nella gerarchia delle classi ed estendere direttamente
+ <code>SimpleReporter</code> dsel file <em>simple_test.php</em>.
</p>
<p>
- A do nothing display, a blank canvas for your own creation, would
- be...
+ Un esempio di display che non fa niente se non mostrare una pagina
+ bianca potrebbe essere:
<php><![CDATA[
<strong>require_once('simpletest/simple_test.php');</strong>
@@ -264,16 +263,17 @@
}
}
]]></php>
- No output would come from this class until you add it.
+ Finché non si definisce un output questa classe non ne produrrà alcuno.
</p>
</section>
- <section name="cli" title="The command line reporter">
+ <section name="cli" title="Usare SimpleTest dalla riga di comando">
<p>
- SimpleTest also ships with a minimal command line reporter.
- The interface mimics JUnit to some extent, but paints the
- failure messages as they arrive.
- To use the command line reporter simply substitute it
- for the HTML version...
+ SimpleTest è provvisto anche di un reporter minimale a riga di comando.
+ L'interfaccia, fino ad un certo punto, imita quella di JUnit ma
+ a differenza di questo visualizza i messaggi di failure non appena vengono
+ ricevuti.
+ Per utilizzare il reporter a riga di comando è sufficiente sostituirla
+ a quella HTML:
<php><![CDATA[
<?php
require_once('simpletest/autorun.php');
@@ -283,19 +283,18 @@
$test->run(<strong>new TextReporter()</strong>);
?>
]]></php>
- Then invoke the test suite from the command line...
+ Dopo di che, si invoca la test suite dalla command line:
<pre class="shell">
php file_test.php
</pre>
- You will need the command line version of PHP installed
- of course.
- A passing test suite looks like this...
+ Naturalmente, ci sarà bisogno della versione CLI di PHP.
+ Un test passato con successo assomiglierà a:
<pre class="shell">
File test
OK
Test cases run: 1/1, Failures: 0, Exceptions: 0
</pre>
- A failure triggers a display like this...
+ Un test fallito, invece, visualizzerà:
<pre class="shell">
File test
1) True assertion failed.
@@ -305,16 +304,14 @@
</pre>
</p>
<p>
- One of the main reasons for using a command line driven
- test suite is of using the tester as part of some automated
- process.
- To function properly in shell scripts the test script should
- return a non-zero exit code on failure.
- If a test suite fails the value <code>false</code>
- is returned from the <code>SimpleTest::run()</code>
- method.
- We can use that result to exit the script with the desired return
- code...
+ Uno dei motivi per cui si può desiderare di usare una test suite
+ a linea di comando è per l'integrazione del tester all'intero di qualche
+ processo automatizzato.
+ Per un funzionamento corretto negli script shell, il test dovrebbe
+ restituire un codice diverso di zero in caso di fallimento.
+ Quando una test suite fallisce, il metodo <code>SimpleTest::run()</code>
+ restituisce <code>false</code>. E' possibile usaere questo risultato
+ per far produrre allo script l'adeguato codice di uscita:
<php><![CDATA[
<?php
require_once('simpletest/autorun.php');
@@ -324,10 +321,10 @@
<strong>exit ($test->run(new TextReporter()) ? 0 : 1);</strong>
?>
]]></php>
- Of course we don't really want to create two test scripts,
- a command line one and a web browser one, for each test suite.
- The command line reporter includes a method to sniff out the
- run time environment...
+ Ovviamente, non si vuole dover scrivere davvero due script di test
+ separati per ogni test suite, uno per la riga di comando ed uno per il browser.
+ Per questo, il reporter a riga di comando include un metodo per
+ intercettare l'ambiente di runtime:
<php><![CDATA[
<?php
require_once('simpletest/autorun.php');
@@ -340,14 +337,14 @@
$test->run(new HtmlReporter());
?>
]]></php>
- This is the form used within SimpleTest itself.
+ Questo è il sistema usato dentro SimpleTest stesso.
</p>
</section>
- <section name="xml" title="Remote testing">
+ <section name="xml" title="Usare l'XML per i collaudi in remoto">
<p>
- SimpleTest ships with an <code>XmlReporter</code> class
- used for internal communication.
- When run the output looks like...
+ SimpleTest viene fornito con una classe <code>XmlReporter</code>
+ utilizzata per comunicazioni interne.
+ Quando viene eseguita, produce un output di questo tipo:
<pre class="shell"><![CDATA[
<?xml version="1.0"?>
<run>
@@ -370,10 +367,10 @@
</group>
</run>
]]></pre>
- You can make use of this format with the parser
- supplied as part of SimpleTest itself.
- This is called <code>SimpleTestXmlParser</code> and
- resides in <em>xml.php</em> within the SimpleTest package...
+ E' possibile utilizzare questo formato con il
+ parser di cui è provvisto SimpleTest, chiamato
+ <code>SimpleTestXmlParser</code> e memorizzato nel file
+ <em>xml.php</em> del pacchetto SimpleTest:
<php><![CDATA[
<?php
require_once('simpletest/xml.php');
@@ -383,27 +380,27 @@
$parser->parse($test_output);
?>
]]></php>
- The <code>$test_output</code> should be the XML format
- from the XML reporter, and could come from say a command
- line run of a test case.
- The parser sends events to the reporter just like any
- other test run.
- There are some odd occasions where this is actually useful.
+ <code>$test_output</code> dovrebbe essere il testo XML
+ prodotto dal reporter XML e potrebbe giungere dall'esecuzione
+ di un test case da riga di comando.
+ Il parser invia gli eventi al reporter esattamente come in
+ ogni altra esecuzione di test.
+ Ci sono alcuni casi particolari dove questo può risultare utile.
</p>
<p>
- A problem with large test suites is thet they can exhaust
- the default 8Mb memory limit on a PHP process.
- By having the test groups output in XML and run in
- separate processes, the output can be reparsed to
- aggregate the results into a much smaller footprint top level
- test.
+ Un problema con test suite particolarmente grandi è che possono
+ esaurire il limite standard di 8Mb a disposizione del processo PHP.
+ Con un output in XML e l'esecuzione in processi separati, l'output
+ può essere inviato successivamente al parser affinché produca un
+ risultato molto più leggero ad un test a livello più alto.
</p>
<p>
- Because the XML output can come from anywhere, this opens
- up the possibility of aggregating test runs from remote
- servers.
- A test case already exists to do this within the SimpleTest
- framework, but it is currently experimental...
+ Dal momento che il risultato XML può essere stato prodotto ovunque,
+ questo apre la possibilità di aggregare i risultati delle esecuzioni di test di
+ server remoti.
+ Esiste un test case all'interno di SimpleTest che realizza questo risultato,
@@ Diff output truncated at 100000 characters. @@
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|