Próbuję przetestować metodę SFTPSessions.Read z Junit, nie jestem pewien, jaki jest sposób, aby przetestować tę metodę, używam @captora, ale nie mam wyraźnie zrozumienia, że mogę wdrożyć ten test. To jest kod mojego testu:

@Test
void getFileContent() throws IOException {
    String directory = "testDirectory";
    String fileName = "testFileName";
    ByteArrayOutputStream fileByteStream = new ByteArrayOutputStream();

    given(sessionFactory.getSession()).willReturn(sftpSession);

    sftpServiceImpl.getFileContent(directory, fileName);

    verify(sftpSession, times(1)).read(captor.capture(), eq(fileByteStream));
}

To jest metoda GetFileContent:

@Override
    public byte[] getFileContent(String directory, String fileName) throws IOException {
        try (SftpSession session = sessionFactory.getSession()) {
            ByteArrayOutputStream fileByteStream = new ByteArrayOutputStream();
            session.read(directory + "/" + fileName, fileByteStream);
            return fileByteStream.toByteArray();
        }
    }
0
rasilvap 16 styczeń 2020, 23:35

1 odpowiedź

Najlepsza odpowiedź

Możesz to zrobić :

verify(sftpSession, times(1)).read(any(String.class), any(ByteArrayOutputStream.class));

Lub

verify(sftpSession, times(1)).read(argThat (arg -> arg.contains(directory) && arg.contains(fileName) ), argThat (arg -> arg != null));
1
Nick 17 styczeń 2020, 04:55