Требуется, но не вызывается ошибка в тестовом примере JUnit с mockito - PullRequest
0 голосов
/ 23 апреля 2020

Я написал код подключения веб-сокета в Springboot.

...

@Component
public class Handler extends TextWebSocketHandler {

List<WebSocketSession> sessions = new CopyOnWriteArrayList<>();

@Override
public void handleTextMessage(WebSocketSession session, TextMessage message) throws 
InterruptedException, IOException {

for (WebSocketSession webSocketSession : sessions) {
    if (webSocketSession.isOpen() && !session.getId().equals(webSocketSession.getId())) {
        webSocketSession.sendMessage(message);
    }
  }
 }

...

И написал для него модульный тест

...

 @RunWith(MockitoJunitRunner.class)
 public class HandlerTest {

@Test
public void verifyCallToIsOpenConnection() {
     WebSocketSession session = mock(WebSocketSession.class);
     TextMessage textMsg = new TextMessage("Test Message".getBytes());


     Handler handler = new Handler();

     // Pass the mocked session object here
     Handler.handleTextMessage(session, textMsg);

     // Now you can verify if session.sendMessage() was called or not
     verify(session, times(1)).sendMessage(textMsg);
   }
 }

...

но получаю эту ошибку

...

Wanted but not invoked:
webSocketSession.sendMessage(
TextMessage payload=[Test Messa..], byteCount=12, last=true]
 );
  -> at com.cerner.devacademy.HandlerTest.verifyConnection(HandlerTest.java:50)
Actually, there were zero interactions with this mock.

...

Я пробовал несколько способов решить эту проблему, но ни один не работает. Пожалуйста, помогите решить эту проблему.

...