2015-10-14 11 views
1

Это известная ошибка, что JUnit-х Parameterized Tests будет молча терпеть неудачу, если вы попытаетесь отобразить символ новой строки: https://bugs.eclipse.org/bugs/show_bug.cgi?id=474465JUnit параметризованные тесты Дисплей Newline

import static org.junit.Assert.assertEquals; 
import java.util.Arrays; 
import java.util.Collection; 
import org.junit.Test; 
import org.junit.runner.RunWith; 
import org.junit.runners.Parameterized; 
import org.junit.runners.Parameterized.Parameters; 

@RunWith(Parameterized.class) 
public class Example { 

    private String actual; 
    private String expected; 

    public Example(String actual, String expected) { 
     this.actual = actual; 
     this.expected = expected; 
    } 

    @Parameters(name = "{0}") // can't do this ("\n" not allowed) 
    public static Collection<Object[]> testCollection() { 
     return Arrays.asList(new Object[][] { 
      { "Hello\nWorld", "Hello\nWorld" } 
     }); 
    } 

    @Test 
    public void test() { 
     assertEquals(expected, actual); 
    } 

} 

Существуют ли какие-либо известные способы их решения вокруг этой проблемы? Например, есть ли способ заменить символ новой строки здесь: @Parameters(name = "{0}"), но не на самом деле в самом тесте?

+1

пытаются дважды избежать слэш? например '\\ n' – ochi

+0

Я потратил час, пытаясь выяснить, что не так, и вы решили мою проблему примерно через минуту ... спасибо :) –

+0

Это называется« Я столкнулся с тем же вопросом раньше »(aka experience) - Рад, что я мог бы помочь – ochi

ответ