PHPUnit: Wie kann ich verspotte dieses Dateisystem?

Betrachten Sie das folgende Szenario (das ist kein Produktionscode):

 class MyClass {
    public function myMethod() {
        //create a directory
        $path = sys_get_temp_dir() . '/' . md5(rand());
        if(!mkdir($path)) {
            throw new Exception("mkdir() failed.");
        }

        //create a file in that folder
        $myFile = fopen("$path/myFile.txt", "w");
        if(!$myFile) {
            throw new Exception("Cannot open file handle.");
        }
    }
}

Recht, so was ist das problem? Code-coverage-reports, dass diese Zeile nicht abgedeckt ist:

throw new Exception("Cannot open file handle.");

Korrekt ist, aber da bin ich erstellen, die Ordner oben logisch es scheint unmöglich für die fopen() zu scheitern (außer vielleicht in extremen Situationen, wie der Datenträger auf 100 %).

Konnte ich ignorieren Sie den code aus der code-coverage, aber das ist die Art von Betrug. Gibt es eine Möglichkeit, kann ich verspotte die Datei-system, so dass es erkennen kann myFile.txt - und mock-Dateisystem nicht in der Lage, die Datei zu erzeugen?

Schreibe einen Kommentar