Проблемы с путями в тестировании JUnit с кодом Visual Studio - PullRequest
1 голос
/ 03 апреля 2020

У меня возникли некоторые проблемы с генерацией тестов, содержащих абсолютные пути с JUnit в VS C.

Следующие две переменныеwritFilePath и generateFilePath содержат одинаковую строку String, когда я печатаю их в терминале. Однако они дают разные результаты при использовании в тесте JUnit.

private String writtenFilePath = "/home/$USER/Desktop/S2/src/test/test1.in";
private String generatedFilePath = Paths.get("").toAbsolutePath().toString().concat("/src/test/test1.in");

writFilePath выдает желаемый результат при использовании в тесте, в то время как сгенерированныйFilePath этого не делает, поскольку тест не может получить доступ к файлу.

Ниже это сообщение об ошибке из следующего теста JUnit, проверяющего, что две строки пути равны.

@Test
public void identicalFilePathsAreEqual() {
    assertEquals(writtenFilePath,generatedFilePath);
}
**org.junit.ComparisonFailure:**

**expected:**
/home/$USER/[Desktop/S]2/src/test/test1.in

**but was:**
/home/$USER/[.config/Code/User/workspaceStorage/c1a1302e27095d0a416037f60c4e3677/redhat.java/jdt_ws/S2_a43208c]2/src/test/test1.in

Тест, который я пытаюсь выполнить: сгенерированный FilePath)

@Test
public void sizeIsSixFromTest1() throws IOException {
    System.setIn(new ByteArrayInputStream(readLineByLineJava8(generatedFilePath).getBytes()));
    Lexer lex = new Lexer(System.in);
    assertEquals(6,lex.howManyTokens());
}
...