Пожалуйста, помогите мне с моей проблемой, касающейся модульного тестирования моего класса.
Вот класс, который я не могу полностью покрыть своим JUnit.
@Component
public class Utils {
@Autowired
private ObjectMapper mapper = new ObjectMapper();
@Autowired
private LoggingService loggingService;
public <E> String mapToJsonString(E object) {
try {
if (object == null) {
throw new IOException(ErrorMessage.ERROR_PROCESSING_JSON_NULL);
}
return mapper.enable(SerializationFeature.INDENT_OUTPUT).writeValueAsString(object);
} catch (IOException e) {
loggingService.logError(this.getClass().getName(), "1", ErrorMessage.ERROR_MAPPING_TO_JSONSTRING, e);
return "";
}
}
}
Вот мой контрольный пример:
@MockBean
private LoggingService loggingService;
@Before
public void setUp() {
myModelClass = new MyModelclass();
myModelClass.setStatus("U");
myModelClass.setTermCode("001");
myModelClass.setLocation("BGC");
}
@Test
public void testObjectToJson() throws JsonProcessingException {
Mockito.when(utils.mapToJsonString(myModelClass)).thenReturn("");
String output = utils.mapToJsonString(myModelClass);
assertThat(output).isEqualTo(utils.mapToJsonString(""));
}
@Test(expected=IOException.class)
public void testJsonParsingException() {
utils.mapToJsonString(null);
String output = utils.mapToJsonString(myModelClass);
Mockito.when(utils.mapToJsonString(null)).thenThrow(new IOException());
assertThat(output).isNull();
}
Любая помощь будет высоко ценится. Спасибо.