10.3. Java Syntaxfehler wegen Tippfehler

Fehlermeldung

# Failed test 'error intended, wrong method name'
# died: No public method 'hasLanguageXXX' defined for 
# class 'main::com::pdfunit::validators::DocumentValidator' 
# at C:/.../pdfunit-typical-error_java-syntax-error.t line 36.
Can't locate object method "getMessage" via package. 
"No public method 'hasLanguageXXX' defined for 
class 'main::com::pdfunit::validators::DocumentValidator' 
at C:/.../pdfunit-typical-error_java-syntax-error.t line 36.

Erklärung

Das Modul Inline::Java sucht in der entsprechenden Java-Klasse nach der Methode mit dem falsch geschriebenen Namen, findet sie nicht und gibt dann eine Fehlermeldung aus. Diese Fehlermeldung enthält den Namen der Klasse, in der gesucht wurde. Und für diese Klasse sollten Sie die Javadoc-Dokumentation heranziehen, um dem Tippfehler auf die Spur zu kommen.

Beispiel mit Fehler

lives_ok {
  my $pdfUnderTest = "$resources_dir/language/localeDemo_de.pdf";
  AssertThat->document($pdfUnderTest)
            ->hasLanguageXXX('de')     # error, not existing method
  ; 
} "typical error, wrong method name";

Beispiel ohne Fehler

lives_ok {
  my $pdfUnderTest = "$resources_dir/language/localeDemo_de.pdf";
  AssertThat->document($pdfUnderTest)
            ->hasLanguageInfo('de')    # syntax OK
  ; 
} "no error, correct method name";