title: PHPUnit: How do I mock this file system?
body: <p>Consider the following scenario (this is not production code):</p>
  
  <pre><code> 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.");
          }
      }
  }
  </code></pre>
  
  <p>Right, so what's the problem? Code coverage reports that this line is not covered:</p>
  
  <pre><code>throw new Exception("Cannot open file handle.");
  </code></pre>
  
  <p>Which is correct, but since I'm creating the folder above logically it would seem impossible for the <code>fopen()</code> to fail (except maybe in extreme circumstances, like disk at 100 %).</p>
  
  <p>I could ignore the code from code coverage but thats kind of cheating. Is there any way I can mock the file system so that it can recognise <code>myFile.txt</code> and mock the file system unable to create the file?</p>