unit_test_documentation.html.svn-base
来自「PHP 知识管理系统(基于树结构的知识管理系统), 英文原版的PHP源码。」· SVN-BASE 代码 · 共 448 行 · 第 1/2 页
SVN-BASE
448 行
La partie "%s" est remplac茅e par le message d'erreur par d茅faut qui aurait 茅t茅 affich茅 si nous n'avions pas fourni le n么tre. Cela nous permet d'embo卯ter les messages de test.<pre><strong>$a = 1;$b = $a;$this->assertReference($a, $b);</strong></pre> 脡chouera 茅tant donn茅 que la variable <span class="new_code">$b</span> est une copie de <span class="new_code">$a</span>.<pre><strong>$this->assertWantedPattern('/hello/i', 'Hello world');</strong></pre> L脿, 莽a passe puisque la recherche est insensible 脿 la casse et que donc <span class="new_code">hello</span> est bien rep茅rable dans <span class="new_code">Hello world</span>.<pre><strong>trigger_error('Disaster');trigger_error('Catastrophe');$this->assertError();$this->assertError('Catastrophe');$this->assertNoErrors();</strong></pre> Ici, il y a besoin d'une petite explication : toutes passent ! </p> <p> Les erreurs PHP dans SimpleTest sont pi茅g茅es et plac茅es dans une queue. Ici la premi猫re v茅rification d'erreur attrape le message "Disaster" sans v茅rifier le texte et passe. R茅sultat : l'erreur est supprim茅e de la queue. La v茅rification suivante teste non seulement l'existence de l'erreur mais aussi le texte qui correspond : un autre succ猫s. D茅sormais la queue est vide et le dernier test passe aussi. Si une autre erreur non v茅rifi茅e est encore dans la queue 脿 la fin de notre m茅thode de test alors une exception sera rapport茅e dans le test. Notez que SimpleTest ne peut pas attraper les erreurs PHP 脿 la compilation. </p> <p> Les sc茅narios de test peuvent utiliser des m茅thodes bien pratiques pour d茅boguer le code ou pour 茅tendre la suite... <table><tbody> <tr><td><span class="new_code">setUp()</span></td><td>Est lanc茅e avant chaque m茅thode de test</td></tr> <tr><td><span class="new_code">tearDown()</span></td><td>Est lanc茅e apr猫s chaque m茅thode de test</td></tr> <tr><td><span class="new_code">pass()</span></td><td>Envoie un succ猫s</td></tr> <tr><td><span class="new_code">fail()</span></td><td>Envoie un 茅chec</td></tr> <tr><td><span class="new_code">error()</span></td><td>Envoi un 茅v猫nement exception</td></tr> <tr><td><span class="new_code">sendMessage()</span></td><td>Envoie un message d'茅tat aux syst猫mes d'affichage qui le supporte</td></tr> <tr><td><span class="new_code">signal($type, $payload)</span></td><td>Envoie un message d茅fini par l'utilisateur au rapporteur du test</td></tr> <tr><td><span class="new_code">dump($var)</span></td><td>Effectue un <span class="new_code">print_r()</span> format茅 pour du d茅boguage rapide et grossier</td></tr> <tr><td><span class="new_code">swallowErrors()</span></td><td>Vide les erreurs de la queue</td></tr> </tbody></table> </p> <p><a class="target" name="extension_unitaire"><h2>Etendre les sc茅narios de test</h2></a></p> <p> Bien s没r des m茅thodes suppl茅mentaires de test peuvent 锚tre ajout茅es pour cr茅er d'autres types de sc茅nario de test afin d'茅tendre le framework...<pre>require_once('simpletest/autorun.php');<strong>class FileTester extends UnitTestCase { function FileTester($name = false) { $this->UnitTestCase($name); } function assertFileExists($filename, $message = '%s') { $this->assertTrue( file_exists($filename), sprintf($message, 'File [$filename] existence check')); }</strong>}</pre> Ici la biblioth猫que SimpleTest est localis茅e dans un r茅pertoire local appel茅 <em>simpletest</em>. Pensez 脿 le modifier pour votre propre environnement. </p> <p> Alternativement vous pourriez utiliser dans votre code un directive <span class="new_code">SimpleTestOptions::ignore('FileTester');</span>. </p> <p> Ce nouveau sc茅nario peut 锚tre h茅rit茅 exactement comme un sc茅nario de test classique...<pre>class FileTestCase extends <strong>FileTester</strong> { function setUp() { @unlink('../temp/test.txt'); } function tearDown() { @unlink('../temp/test.txt'); } function testCreation() { $writer = &new FileWriter('../temp/test.txt'); $writer->write('Hello');<strong> $this->assertFileExists('../temp/test.txt');</strong> }}</pre> </p> <p> Si vous souhaitez un sc茅nario de test sans toutes les assertions de <span class="new_code">UnitTestCase</span> mais uniquement avec les v么tres propres, vous aurez besoin d'茅tendre la classe <span class="new_code">SimpleTestCase</span> 脿 la place. Elle se trouve dans <em>simple_test.php</em> en lieu et place de <em>unit_tester.php</em>. A consulter <a href="group_test_documentation.html">plus tard</a> si vous souhaitez incorporer les sc茅narios d'autres testeurs unitaires dans votre suite de test. </p> <p><a class="target" name="lancement_unitaire"><h2>Lancer un unique sc茅nario de test</h2></a></p> <p> Ce n'est pas souvent qu'il faille lancer des sc茅narios avec un unique test. Sauf lorsqu'il s'agit de s'arracher les cheveux sur un module 脿 probl猫me sans pour autant d茅sorganiser la suite de test principale. Avec <em>autorun</em> aucun 茅chafaudage particulier n'est n茅cessaire, il suffit de lancer votre test et vous y 锚tes. </p> <p> Vous pouvez m锚me d茅cider quel rapporteur (par exemple, <span class="new_code">TextReporter</span> ou <span class="new_code">HtmlReporter</span>) vous pr茅f茅rez pour un fichier sp茅cifique quand il est lanc茅 tout seul...<pre><?phprequire_once('simpletest/autorun.php');<strong>SimpleTest :: prefer(new TextReporter());</strong>require_once('../classes/writer.php');class FileTestCase extends UnitTestCase { ...}?></pre> Ce script sera lanc茅 tel que mais il n'y aura aucun succ猫s ou 茅chec avant que des m茅thodes de test soient ajout茅es. </p> </div> References and related information... <ul><li> La page de SimpleTest sur <a href="http://sourceforge.net/projects/simpletest/">SourceForge</a>. </li><li> La page de t茅l茅chargement de SimpleTest sur <a href="http://www.lastcraft.com/simple_test.php">LastCraft</a>. </li><li> <a href="http://simpletest.org/api/">L'API compl猫te de SimpleTest</a> 脿 partir de PHPDoc. </li></ul><div class="menu_back"><div class="menu"><a href="index.html">SimpleTest</a> | <a href="overview.html">Overview</a> | <a href="unit_test_documentation.html">Unit tester</a> | <a href="group_test_documentation.html">Group tests</a> | <a href="mock_objects_documentation.html">Mock objects</a> | <a href="partial_mocks_documentation.html">Partial mocks</a> | <a href="reporter_documentation.html">Reporting</a> | <a href="expectation_documentation.html">Expectations</a> | <a href="web_tester_documentation.html">Web tester</a> | <a href="form_testing_documentation.html">Testing forms</a> | <a href="authentication_documentation.html">Authentication</a> | <a href="browser_documentation.html">Scriptable browser</a></div></div><div class="copyright"> Copyright<br>Marcus Baker 2006 </div></body></html>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?