0

我正在尝试为以下 Java 代码编写 JUnit 测试用例:

private java.lang.Object __equalsCalc = null;

public synchronized boolean equals(java.lang.Object obj) {

    if (!(obj instanceof Crop)) 
        return false;
    Crop other = (Crop) obj;
    if (obj == null) return false;
    if (this == obj) return true;
    if (__equalsCalc != null) {
        return (__equalsCalc == obj);
    }
}

我写的测试用例如下:

public void testCrop() {
    Crop cp = new Crop();

    Object obj = false;

    cp.equals(obj);
    assertSame(obj instanceof Crop, false);

}


public void testCrop1() {

    Crop other = (Crop) obj;
    // assertSame(other.equals(obj), true);
    assertEquals(obj, other);
}

的测试用例instanceof工作正常,但在检查if(obj == null) return false;测试用例时失败:

截屏

4

2 回答 2

0

你可以使用assertFalse

public void testEqualsNullIsFalse() {
    Crop crop = new Crop();

    assertFalse(crop.equals(null));
}
于 2013-05-10T14:57:00.160 回答
0

测试用例必须类似于

Crop cp = new Crop();
Object obj = null;

bool expected = false;

assertEquals(expected,cp.equals(obj));

注意,如果您正在尝试执行 as 运算符之类的操作,请查看此

如何在 Java 中模拟为运算符

于 2013-05-10T15:48:57.580 回答