### Question:
SquashExporter extends Exporter { @Override public List<ExportField> listRequiredFields() { List<ExportField> fields = new ArrayList<>(); fields.add(new ExportField(PROJECT_NAME, "Targeted project's name", "string", "The name of targeted project in SquashTM. Note that the project must be created before doing the import.")); fields.add(new ExportField(USER, "Targeted User's name", "string", "The name of the user whom will act as the creator of the requirements in SquashTM. Note that the user must exist before doing the import.")); return fields; }  @Override String getName(); @Override String getDescription(); @Override String getFormat(); @Override byte[] generate(List<FunctionalityDTO> functionalities, Map<String, String> requiredInfos); @Override List<ExportField> listRequiredFields();  }### Answer:
@Test public void listRequiredFields() { List<ExportField> fields = this.sut.listRequiredFields(); Assertions.assertThat(fields).hasSize(2); Assertions.assertThat(fields.get(0)).isNotNull(); Assertions.assertThat(fields.get(1)).isNotNull(); Assertions.assertThat(fields.get(0).getId()).isEqualTo(SquashExporter.PROJECT_NAME); Assertions.assertThat(fields.get(0).getName()).isEqualTo("Targeted project's name"); Assertions.assertThat(fields.get(0).getType()).isEqualTo("string"); Assertions.assertThat(fields.get(0).getDescription()).isNotBlank(); Assertions.assertThat(fields.get(1).getId()).isEqualTo(SquashExporter.USER); Assertions.assertThat(fields.get(1).getName()).isEqualTo("Targeted User's name"); Assertions.assertThat(fields.get(1).getType()).isEqualTo("string"); Assertions.assertThat(fields.get(1).getDescription()).isNotBlank(); }