2017-04-07 3 views
1

Ich habe eine Datei mit einem einzigen sind wie diese:make phpunit ignorieren gehören?

file.php

include(dirname(__FILE__)."/anotherfile.php"); 
class file { 
    function myfunction() { 
     $class = new anotherfile(); 
     $class->functionfromanotherfile(); 
    } 
    function myfunctionToBeTested() { 
     // do things here 
    } 
} 

I travis-ci laufen meine Tests mit PHPUnit bin mit, und das Problem ist, dass Ich verpflichte nicht die "anotherfile.php" (habe die Logik und die Anmeldeinformationen für die Verbindung mit der Datenbank), die es nicht funktioniert, wenn ich versuche, diese Datei in mein Testskript aufzunehmen.

tests.php

class tests extends PHPUnit_Framework_TestCase { 
    public function test_function() { 
     include(dirname(__FILE__)."/file.php"); 
     $class = new file(); 
    } 
} 

ich nur mit der Funktion eine andere Datei machen könnte ich damit testen und gehen müssen, aber vielleicht euch mit anderen awnser kommen können.

Antwort

0

gibt es gewisse dependency injection:

  • Ändern Sie die Klasse, die Sie so testen möchten, dass die Anmeldeinformationen als Parameter des Konstruktor akzeptiert.
  • Im Test, erstellen Sie gefälschte -oder Real-Anmeldeinformationen und übergeben Sie sie an den Konstruktor Ihrer Klasse.