Непреднамеренно приведен к другому VO функции в тесте весенней загрузки - PullRequest
0 голосов
/ 14 мая 2019

Я создал контроллер и хочу его протестировать.

Это мой код.

@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class AlertControllerTest {

    @Autowired
    private TestRestTemplate restTemplate;

    @Test
    public void getMetric() throws Exception {
        ResponseEntity<MetricDTO> response = restTemplate.getForEntity("/_api/metrics/in/1", MetricDTO.class);
        Assert.assertEquals(200, response.getStatusCode().value());
    }

    @Test
    public void getNotification() throws Exception{
        ResponseEntity<NotificationDTO> response = restTemplate.getForEntity("/_api/notifications/in/1", NotificationDTO.class);
        Assert.assertEquals(200, response.getStatusCode().value());
    }
}

В итоге, он сначала пытается проверить, вызван ли URI, чтобы вернуть состояние 200.

Однако он пытается привести к другому VO, в отличие от моего намерения, независимо от того, искажается ли он двумя способами.

Это мой журнал ошибок.

java.lang.ClassCastException: class com.jmsight.management.dto.NotificationDTO cannot be cast to class com.jmsight.management.dto.MetricDTO (com.jmsight.management.dto.NotificationDTO and com.jmsight.management.dto.MetricDTO are in unnamed module of loader 'app')
    at com.jmsight.management.AlertController$$EnhancerBySpringCGLIB$$c2c37696.getMetric(<generated>)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)

Однако, если я временно закомментирую один из двух методов, а затем запущу его, он будет работать нормально. В чем проблема ??

Примечание: с контроллером проблем нет.

...