2016-07-22 9 views
0

Ich kann eine einzelne PHP-Datei erstellen, die PHPunit für Assertions in einer Funktion innerhalb einer Klasse verwendet. Ist es möglich, Funktionen aufzurufen, wobei jede Funktion eine Assertion enthält? (Ich verwende Xampp und Notepad ++ unter Windows nur im Moment)So rufen Sie Funktionen bei Bedarf auf, die jeweils PHPUnit-Assertionen enthalten

fileA.php: 
============= 
require_once ‘fileA.php’; 
testA(): 
testB(); 
testC(); 


fileB.php: 
========== 

class availabletests extends \PHPUnit_Framework_TestCase 
{ 

    function testA() 
    { $this->assertEquals(2,1+1); } 

    function testB() 
    { $this->assertEquals(20,1+1); } 

    function testC() 
    { $this->assertEquals(8,1+1); } 

} 

Vielen Dank

!

+0

Im Allgemeinen würden Sie Komponententests mit dem phpunit-Skript ausführen: '$ phpunit fileB.php', und dann erhalten Sie ausführliche Informationen darüber, welche Tests fehlgeschlagen sind und welche Assertions fehlgeschlagen sind. Insofern ist es viel besser, mehrere Testmethoden in einer einzigen Datei/Klasse zu haben, da es besser ist, jeden Testfall zu isolieren und es Ihnen ermöglicht, jeden Erfolg/Fehler einzeln zu betrachten. – Ataraxia

Antwort

0

Es ist nicht nur möglich mehrere Testmethoden in einem einzigen Einheitentest zu haben, es ist tatsächlich, wie PHPUnit verwendet wird, und ist preferable to putting multiple assertions into a single test. Wenn Ihr Gerät zu testen über die command line test runner läuft, wird dies der Ausgang sein:

$ phpunit availabletests.php 
    PHPUnit 3.7.27 by Sebastian Bergmann. 

    .FF 

    Time: 41 ms, Memory: 3.00Mb 

    There were 2 failures: 

    1) availabletests::testB 
    Failed asserting that 2 matches expected 20. 

    /home/gwallace/availabletests.php:10 

    2) availabletests::testC 
    Failed asserting that 2 matches expected 8. 

    /home/gwallace/availabletests.php:13 

    FAILURES! 
    Tests: 3, Assertions: 3, Failures: 2. 

Dieser jeden Testfall-Isolaten und gibt Ihnen ausführliche Informationen darüber, welche Testfälle nicht, und welche Aussagen sie scheiterten an.