2015-10-14 90 views
1

這是一個已知的bug是JUnit的Parameterized Tests如果你試圖顯示換行符將失敗默默:https://bugs.eclipse.org/bugs/show_bug.cgi?id=474465JUnit的參數化測試顯示換行符

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

嘗試雙逃避斜線? like'\\ n' – ochi

+0

我浪費了一個小時,試圖弄清楚什麼是錯誤的,並且你在一分鐘內解決了我的問題......謝謝:) –

+0

它被稱爲「我以前遇到過同樣的問題」(又名體驗) - 很高興我能幫上忙 – ochi

回答

1

您需要雙擊逃避斜線,如\\n