Jabref: Improve Architecture Tests

Created on 6 Mar 2017  路  4Comments  路  Source: JabRef/jabref

I just noticed that our architecture tests currently do not cover static imports and, therefore, are missing at least one dependency that we want to forbid.

The class org.jabref.logic.pdf.PdfAnnotationImporter currently includes this statement import static org.jabref.gui.importer.actions.OpenDatabaseAction.LOGGER. Apart from being totally unnecessary (there would be no problem in using an own logger for the class), this is also forbidden. A fix to this issue should:

  1. remove the dependency in PdfAnnotationImporter and using an own logger.
  2. enhance the ArchitectureTests to detect static imports (which could lead to discovering further errors that might not be as easy to fix)
help wanted code-quality enhancement

Most helpful comment

There is a new tool called ArchUnit, maybe this is helpful. https://github.com/TNG/ArchUnit

All 4 comments

Idea: there may be checkstyle rules that can be configured to cover our architecture tests.

Oh, that was me. Fixed this instance in #2618. Unfortunately, I don't have time to investigate 2.

However, I am happy to have raised attention to this problem by committing this mistake.

Further architecture related desirable tests are:

  • logic and viewModel: no javafx except javafx.collections
  • view, viewModel and controller: no Globals and JabRefGUI, no direct FXDialogService
  • all fxml files can be loaded successfully
  • no fetcher is used directly outside of the import package

There is a new tool called ArchUnit, maybe this is helpful. https://github.com/TNG/ArchUnit

Was this page helpful?
0 / 5 - 0 ratings

Related issues

Braunch picture Braunch  路  3Comments

Siedlerchr picture Siedlerchr  路  4Comments

lenhard picture lenhard  路  4Comments

simonharrer picture simonharrer  路  3Comments

dpdpdpdpdpdp picture dpdpdpdpdpdp  路  4Comments