2011-09-16 50 views
1

从表,我得到的字符串的名单,并想检查时val != "A",串"x"表的列表中存在:使用断言使用JUnit

for (int i = 0; i < NbRow; j++) 
{   
    if (val[i] == "A") 
    { 
    assertFalse("");   
    } 
    else 
    {   
    list.add(myTable.getValue(j, 0));  
    //need to check here the string exists in the list using assertTrue 
    } 
} 

如何检查字符串X存在使用断言?

+0

在我头顶上,这可能是你想要的:'assertTrue(list.contains(“string”))'? – Aerus

+2

不要使用'=='比较字符串,使用'equals()',例如在你的上面的代码中做''A'.equals(val [i])' - 如果'val [i]'应该是'null',那么把常量字符串放在左边可以防止'NullPointerException'。 –

回答

3

作为一种替代方案:

import static org.hamcrest.Matchers.hasItem; 
import static org.junit.Assert.assertThat; 

assertThat(list, hasItem("string")); 

[编辑] ,如果你喜欢这样:

if (val[i] == "A") 
{ 
    Assert.fail("");   
} 

可以写为:

import static org.hamcrest.core.Is.is; 
import static org.hamcrest.Matchers.not; 

assertThat(val[i], is(not(equalTo("A")))); 
+0

发布的示例完成了。[[Collection.contains()'](http://download.oracle.com)没有必要引入整个库/javase/6/docs/api/java/util/Collection.html#contains(java.lang.Object)) –

+0

@ Philipp不,没有必要,但是如果你喜欢以更多的DSL方式编写你的断言, D推荐它:) – Gandalf

1
if(!val.equals("A")) 
{ 
    assertTrue(list.contains("x")); 
} 
+0

请不要'!=',而是'!equals()':) –

+1

哎呦..感谢您纠正:D。我在考虑字符:D –

+0

为了能够像那样使用assertTrue,您需要使用静态方式导入Junit AssertTrue依赖项。 –

0

使用这个命令你想使用空指针异常afe字符串比较

if (!"A".equals(val[i])) 
    { 
    assertTrue(list.contains("x")); 
    }