断言()和Assert.assertEquals()

时间:2017-09-26 14:58:53

标签: java eclipse testing junit assert

我创建了一个方法来计算String中给定字符的出现次数。

public Integer numberOf(String str, Character a){}

我尝试使用正常测试:

@Test
public void test1(){
    Integer result = oc.numberOf("Lungimirante", 'u');
    Assert.assertEquals(1, result);
}

但Eclipse抱怨它。

我用谷歌搜索,我发现要测试它我需要使用:

assertEquals(1, result); //it works correctly

代替:Assert.assertEquals(1, result);

你可以解释一下为什么吗?有什么区别?

1 个答案:

答案 0 :(得分:2)

您没有提供任何详细信息:

  

Eclipse抱怨它。

我怀疑它是Ambiguous method call ...

enter image description here

......这是由多种形式造成的。 assertEquals其中一些采用int,一些long,一些Object,一些String等等。

所以,你只需要明确你想要使用哪一个。例如,以下两个assertEquals调用都是编译的,因为它们明确指出expectedactual参数的类型

Integer result = oc.numberOf("Lungimirante", 'u');
Assert.assertEquals(new Integer(1), result);
Assert.assertEquals(1, result.intValue());