Как я могу протестировать Junit на чтение файла с последующим сохранением содержимого в ArrayList - PullRequest
0 голосов
/ 03 августа 2020

Я хочу создать тест junit, чтобы увидеть, добавлено ли содержимое внутри файла в Arraylist

Вот моя функция:

    public List readContent(final File file, final boolean isFirstFile) throws IOException
    {
        List<String> lines = new ArrayList<>();
        try
        {
            BufferedReader br = new BufferedReader(new FileReader(file));
            String strLine;
            if (!isFirstFile)
            {
                br.readLine();
            }
            while ((strLine = br.readLine()) != null)
            {
                lines.add(strLine);
            }
        }
        catch (IOException e)
        {
            LOG.info("An error occurred while reading file.");
            e.printStackTrace();
        }
        return lines;
    }

Заранее спасибо.

Ответы [ 3 ]

0 голосов
/ 03 августа 2020

Вы можете использовать TemporaryFolder для создания временных папок и файлов и ErrorCollector для утверждения более одного утверждения

@RunWith(MockitoJUnitRunner.class)
public class TargetTest {

    public TemporaryFolder folder = new TemporaryFolder();

    public ErrorCollector collector = new ErrorCollector();

    @Rule
    public RuleChain chain = RuleChain.outerRule(collector).around(folder);

    private TargetClass target;

    @Before
    public void setUp() {
        target = new TargetClass();
    }

    @Test
    public void shouldReadFile() throws Exception {
        // Arrange
        File file = folder.newFile("myfile.txt");

        // Act
        List actual = target.readContent(file, true);

        // Assert
        
    }
}
0 голосов
/ 03 августа 2020

Вы также можете просто создать тестовый файл (или несколько, в зависимости от того, что вы хотите протестировать), который вы сохраните в папке src/test/resources (если вы используете Maven / Gradle), а затем в рамках подготовки к тесту вы должны загрузить этот файл и передать его методу.

0 голосов
/ 03 августа 2020

Вы можете использовать временный файл JUnit. По сути, он создает для вас файл / папку во время теста, и когда тест завершится, он будет удален.

Чтобы проверить это, вы просто создаете этот файл, помещаете в него нужные данные и затем вызываете свой метод. Затем вы подтверждаете результат метода с ожидаемым значением.

О временном файле для JUnit 4: https://howtodoinjava.com/junit/junit-creating-temporary-filefolder-using-temporaryfolder-rule/

В случае использования JUnit 5: https://www.baeldung.com/junit-5-temporary-directory

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...