simplecontent

PHP Snippets und Beispiele

Inhaltsverzeichnis A-Z Register
Beispiel ausführen

Einfache Tests durchführen

Statische Variablen in Funktionen können sehr nützlich sein. Das ist ein Beispiel wie man einfach eine Reihe von Bedingungen abprüfen kann. Das ist ähnlich zur Verwendung von assert(). Wer per Suchmaschine hier gelandet ist und etwas anderes erwartet hat, hier geht es zum richtigen Simpletest Framework für Unit-Tests. Das PHP Code Beispiel:
<?php
/**
* Einfache Funktion für Tests
*/



/**
* Aufruf ohne Parameter: Liste der bisher gesammelte Fehlermeldungen wird als String zurückgegeben
* Aufruf mit einem Parameter: Übergebener String wird als Zwischenüberschrift gesetzt
* Aufruf mit zwei Parametern: ein boolscher Wert und ein Fehlertext der bei false gezeigt wird
* Aufruf mit drei Parametern: der dritte Parameter sorgt dafür, dass nur jeweils der erste Fehler angezeigt wird

*/

function SimpleTest()
{
     static 
$s '';
     static 
$headline '';
     static 
$groupby = array();
     
     
// Snippets zur Gestaltung der Anzeige ...
    
$bullet ' &mdash; ';
    
$nl '<br />';
     
$tpl_headline '<h4>[%s]</h4>';
    
$tpl_msg = <<< EOT
<div style="border:dashed 2px #999;padding:10px;background-color:#fff">
<h1>Es sind Fehler aufgetreten</h1>
%s
</div>
EOT;
    
    
    
$n func_num_args();
    
$group false;
    switch(
$n):

    case 
3:
        
$group func_get_arg(2);
        
// fall through intended ...
    
case 2:
        
$bool func_get_arg(0);
        
$msg  func_get_arg(1);
    break;

    case 
1:
        
// Zwischenüberschrift ...
        
$headline func_get_arg(0);
        return 
true;
    break;

    case 
0:
        
$tmp $s;
         
$s '';
         
$headline '';
         
         if (!empty(
$tmp)){
             
$msg sprintf($tpl_msg$tmp);
         }else{
             
$msg '';    
         }
        return 
$msg;
    break;

    default:
        die (
'wrong number of arguments');
    break;

    endswitch;

     if (!
$bool && ($group === false || !isset($groupby[$group]))){
         if (!empty(
$headline)){
             
$s .= sprintf($tpl_headline$headline);
             
$headline '';
         }

         
$s .= $bullet.$msg.$nl;
        if (
$group !== false){
                
$groupby[$group] = true
        }
     }

}


    
SimpleTest('Testreihe A');
    
SimpleTest(2*== 9'Mmmmh, 2*3 ist doch nicht 9?');

    
SimpleTest('Testreihe B');
    
    
// der dritte Parameter sorgt dafür, dass immer nur der erste auftretende Fehler
    // angezeigt wird.
    
    
SimpleTest(file_exists('gibtesabernicht.txt'), 'Datei nicht vorhanden'1);
    
SimpleTest(is_readable('gibtesabernicht.txt'), 'Datei nicht lesbar'1);
    
SimpleTest(is_writeable('gibtesabernicht.txt'), 'Datei nicht beschreibbar'1);

    
SimpleTest(2'Eins soll immer kleiner als zwei sein');
    
SimpleTest(extension_loaded('gd'), 'Die GD-Lib ist nicht verfügbar');

    echo 
SimpleTest();


?>

Dieses PHP Snippet soll in erster Linie als Beispiel und Anregung für eigene Bemühungen dienen.
Gerne darf man es für Projekte aller Art benutzen.
Möchte jemand das Snippet also solches in ähnlicher oder anderer Form veröffentlichen ist ein kleiner Hinweis auf simplecontent.net nicht zuviel verlangt oder Herr Koch?
Für die Abwesenheit von Fehlern kann natürlich keine Gewähr gegeben werden.