2014-11-19 3 views
-2

나는 공간을 무시하는 정규 표현식을 작성했습니다 : 정규 표현식은junit을 사용하는 정규 표현식 테스트?

String ignore_regx = "[^\\s]"; 

Testcase: 
public void TestClass { 

@Test 
public void testIgnoreRegx() { 
String input = " hai"; 
assertTrue(input.matches(ignore_regx)); 
} 
} 

하지만 테스트 위에 실패합니다.

junit을 사용하여 위의 표현을 테스트하는 방법을 알려주시겠습니까?

+2

사이드 노트 : 표현이 잘못되었습니다. '[^ \\ s]' – BackSlash

+0

아니면 그냥 :'\\ S +' – anubhava

+0

다양한 문자열을 사용하는 JUnit 테스트를 작성하고 문자열이 정규 표현식과 일치하거나 일치하지 않는다고 주장한다. –

답변

0

이론을 사용하여 여러 값을 테스트 해보십시오.

@RunWith(Theories.class) 
public void TestClass { 

    @DataPoints 
    public static final String[] trueValues = new String[]{"", "blah", ...}; 

    @DataPoints 
    public static final String[] falseValues = new String[]{" ", " blah", "glah "}; 

@Theory 
public void testIgnoreRegx_true(String input) { 
    Assume.assumeThat(input, IsIn.isIn(trueValues)); 

    assertTrue(input.matches(ignore_regx)); 
} 

@Theory 
public void testIgnoreRegx_false(String input) { 
    Assume.assumeThat(input, IsIn.isIn(falseValues)); 

    assertFalse(input.matches(ignore_regx)); 
} 
}