PHPUnit: Versuch, @cover oder @ nicht vorhandene Methode zu verwenden

8

Ich lerne, wie man einen Unit Test mit PHPUnit 4.3.5 / PHP 5.5.14 durchführt. Alles ging gut, bis ich versuchte, meine Code-Abdeckung zu bekommen. Ich erhalte diesen Fehler: "Versuchen, @cover oder @use nicht vorhandene Methode" MyClass :: __ construct "beim Versuch, Code-Abdeckung zu bekommen. Ich versuchte andere SO Antworten, konnte aber nicht beheben. Irgendwelche Ideen was mache ich falsch Danke!

%Vor%     
MrTourkos 22.12.2014, 15:14
quelle

2 Antworten

8

Wenn Ihre Klasse die Methode __construct implementiert, liegt das Problem darin, dass die Klasse selbst nicht gefunden wird. Starten Sie das Entfernen der @covers Annotation und überprüfen Sie, ob die Klasse geladen werden kann. Zum Beispiel versuchen Sie: var_dump(class_exists('MyClass')); innerhalb des Tests (vor der Behauptung, die ich vermute, wird nicht bestanden).

In Annotationen und allgemein bei der Übergabe Ihres Klassennamens als String sollten Sie immer auf die Klasse verweisen, indem Sie ihren vollständigen Namen mit dem Namen verwenden:

%Vor%     
gontrollez 23.12.2014, 11:31
quelle
12

Sie können denselben Fehler erhalten, wenn Sie erwarten, dass die Annotation @covers mit dem Namespace use operator arbeitet.

Der folgende Code funktioniert nicht:

%Vor%

Intelligente IDEs wie PHPStorm lösen die Annotation ClassToTest::someMethod() , wenn Sie STRG + klicken, aber PHPUnit gibt Ihnen einen Trying to @cover or @use not existing method "ClassToTest::someMethod". Fehler.

Hier gibt es einen Pull-Request: Ссылка

Als Umgehung verwenden Sie einfach den vollständigen Klassennamen:

%Vor%     
Francesco Casula 17.08.2015 14:01
quelle

Tags und Links