Skip to content

Refactor NoBibTexFieldCheckerTest to increase mutation coverage#7697

Merged
koppor merged 3 commits into
JabRef:mainfrom
ningxie1991:a4-nx-t1
May 3, 2021
Merged

Refactor NoBibTexFieldCheckerTest to increase mutation coverage#7697
koppor merged 3 commits into
JabRef:mainfrom
ningxie1991:a4-nx-t1

Conversation

@ningxie1991

Copy link
Copy Markdown
Contributor

This pull request contributes to issue #6207, which is to add more unit tests or improve existing ones. I used Pitest to compute the mutation coverage and found that some conditions were not covered in the unit test and some conditions tested were redundant because they would not be reached. Following are the changes:

  1. Switched to using parametrized test
  2. Covers missing conditions: StandardField.DOI, StandardField.URL
  3. Redundant conditions (still remains in source code and tests): StandardField.ABSTRACT, StandardField.COMMENT (they are not included in the fields of neither BibtexEntryTypeDefinitions.ALL nor BiblatexEntryTypeDefinitions.ALL)

Before:
image

image

After:
image

image

  • Change in CHANGELOG.md described in a way that is understandable for the average user (if applicable)
  • Tests created for changes (if applicable)
  • Manually tested changed features in running JabRef (always required)
  • Screenshots added in PR description (for UI changes)
  • Checked documentation: Is the information available and up to date? If not created an issue at https://github.com/JabRef/user-documentation/issues or, even better, submitted a pull request to the documentation repository.

…rage

1. Switched to using parametrized test
2. Covers missing conditions

@koppor koppor left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

At first, it looks good. Some minor remark remaining

Comment on lines +26 to +39
Arguments.of(new UnknownField("fieldNameNotDefinedInThebiblatexManual"), Collections.emptyList()),

// these fields are displayed by JabRef as default
Arguments.of(StandardField.ABSTRACT, Collections.emptyList()),
Arguments.of(StandardField.COMMENT, Collections.emptyList()),
Arguments.of(StandardField.DOI, Collections.emptyList()),
Arguments.of(StandardField.URL, Collections.emptyList()),

// these fields are not recognized as biblatex only fields
Arguments.of(StandardField.ADDRESS, Collections.emptyList()),
Arguments.of(StandardField.INSTITUTION, Collections.emptyList()),
Arguments.of(StandardField.JOURNAL, Collections.emptyList()),
Arguments.of(StandardField.KEYWORDS, Collections.emptyList()),
Arguments.of(StandardField.REVIEW, Collections.emptyList())

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Each thing gets , Collections.emptyList() as paramter. Thus, this can be removed.

Maybe, even Stream.of(List.of(StandardField.ABSTRACT, StandardField.COMMENT, ...) can be used.

Suggested change
Arguments.of(new UnknownField("fieldNameNotDefinedInThebiblatexManual"), Collections.emptyList()),
// these fields are displayed by JabRef as default
Arguments.of(StandardField.ABSTRACT, Collections.emptyList()),
Arguments.of(StandardField.COMMENT, Collections.emptyList()),
Arguments.of(StandardField.DOI, Collections.emptyList()),
Arguments.of(StandardField.URL, Collections.emptyList()),
// these fields are not recognized as biblatex only fields
Arguments.of(StandardField.ADDRESS, Collections.emptyList()),
Arguments.of(StandardField.INSTITUTION, Collections.emptyList()),
Arguments.of(StandardField.JOURNAL, Collections.emptyList()),
Arguments.of(StandardField.KEYWORDS, Collections.emptyList()),
Arguments.of(StandardField.REVIEW, Collections.emptyList())
Arguments.of(new UnknownField("fieldNameNotDefinedInThebiblatexManual")),
// these fields are displayed by JabRef as default
Arguments.of(StandardField.ABSTRACT),
Arguments.of(StandardField.COMMENT),
Arguments.of(StandardField.DOI),
Arguments.of(StandardField.URL),
// these fields are not recognized as biblatex only fields
Arguments.of(StandardField.ADDRESS),
Arguments.of(StandardField.INSTITUTION),
Arguments.of(StandardField.JOURNAL),
Arguments.of(StandardField.KEYWORDS),
Arguments.of(StandardField.REVIEW)

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code is updated as suggested. :)

@ningxie1991 ningxie1991 requested review from calixtus and koppor May 3, 2021 20:36
@koppor koppor added status: ready-for-review Pull Requests that are ready to be reviewed by the maintainers and removed status: ready-for-review Pull Requests that are ready to be reviewed by the maintainers labels May 3, 2021
@koppor koppor merged commit 45b8539 into JabRef:main May 3, 2021
Siedlerchr added a commit that referenced this pull request May 4, 2021
* upstream/main: (354 commits)
  Fix ScienceDirect fetcher (#7684)
  Refactor NoBibTexFieldCheckerTest to increase mutation coverage (#7697)
  Update Gradle from 6.8.3 to 7.0 (#7619)
  Fixes Jabref#7305: the RFC fetcher is not compatible with the draftFix for issue 7305 (#7674)
  Refactoring existing unit tests (#7693)
  cover boundary cases & add more unit tests (#7694)
  Bump classgraph from 4.8.104 to 4.8.105 (#7688)
  Bump java-diff-utils from 4.9 to 4.10 (#7692)
  Fix arXiv fetcher tests (#7686)
  Make key for ScienceDirect configurable (#7683)
  migration of timestamp (#7671)
  Fix CCSB and DOAJ (#7426)
  [Bot] Update CSL styles (#7680)
  MS Office XML: Export month name (#7677)
  linkfix (#7678)
  readd fix (#7675)
  Fix threading cleanup in performSearch (#7672)
  add missing changelog
  delete bug fix (#7580)
  Add more unit tests to three gui classes  (#7636)
  ...

# Conflicts:
#	build.gradle
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants