Java junit使用哪个断言
我必须测试类的方法返回的值是否不同于零。我的问题是我不知道必须使用的断言。只有assertEquals,但没有assertNotEquals。我该怎么做?使用Java junit使用哪个断言,java,junit,Java,Junit,我必须测试类的方法返回的值是否不同于零。我的问题是我不知道必须使用的断言。只有assertEquals,但没有assertNotEquals。我该怎么做?使用 Assert.assertTrue(actualValue!=0); 但在发生故障时,这并不能为您提供信息性信息使用: assertTrue(currentValue!=0); 或者您可以切换到并且有“assertNotEquals”方法。我认为您使用的是JUnit3(或更高版本),并且您希望测试int I!=0。你应使用: impo
Assert.assertTrue(actualValue!=0);
但在发生故障时,这并不能为您提供信息性信息使用:
assertTrue(currentValue!=0);
或者您可以切换到并且有“assertNotEquals”方法。我认为您使用的是JUnit3(或更高版本),并且您希望测试int I!=0
。你应使用:
import junit.framework.TestCase;
public class Tests extends TestCase {
public void testMe(){
int i = 4;
assertNotSame("msg on fail", i, 0);
}
}
使用assertNotSame
进行测试。
对于o!=无效的
汉克雷斯特是你在这里的朋友。使用
assertThat(currentValue, not(equalTo(0)))
这是可读的,并在出现故障时生成一条合适的消息。我使用的是junit 4.10,当我尝试使用AssertName时,它会告诉我是否找到了。我已经导入了org.harmcrest。错误在哪里?@Mazzy-FYI,您应该1)剪切/粘贴准确的错误消息,2)发布代码,3)指定junit版本。这对给你一个准确的答案有很大帮助。这是我对JUnit的第一个抱怨。为什么没有assertNotEquals?因为使用equals测试时,您声明测试值应该匹配一个期望值。对于notEquals测试,测试值不能接受单个值,因此无法报告“预期测试值为x,但得到了y”。因此,您也可以使用assertTrue,因为不需要向测试方法提供预期值。或者“assertFalse(currentValue==0)”。不要使用assertNotSame测试原始值。在JUnit中,assertSame和assertNotSame测试用于测试两个对象引用(变量)是否指向内存中完全相同的对象。如果将其与基本值一起使用,Java会将基本值自动装箱到新的数字对象中(如Integer和Long),它们可能会不同,因此assertNotSame将始终成功,即使数字值相同。当我运行以下测试时,它失败了,因此我认为您的最后一点不可能完全正确。但我看到有时可能会有问题
public void testMe(){int i=4;assertNotSame(“msg on fail”,i,4);}