У меня возникли некоторые проблемы с генерацией тестов, содержащих абсолютные пути с 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());
}