我怎样才能 junit 测试这个 equal 的最后一个块?

How can I junit test the last block of this equal?

JUnit 如何测试这个 equal 的最后一个块?

如有任何帮助,我们将不胜感激。这是有问题的方法:

@Override
  public boolean equals(java.lang.Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    //unreachable block
    ServiceOrderRelationship serviceOrderRelationship = (ServiceOrderRelationship) o;
    return Objects.equals(this.id, serviceOrderRelationship.id) &&
        Objects.equals(this.href, serviceOrderRelationship.href) &&
        Objects.equals(this.relationshipType, serviceOrderRelationship.relationshipType) &&
        Objects.equals(this.baseType, serviceOrderRelationship.baseType) &&
        Objects.equals(this.schemaLocation, serviceOrderRelationship.schemaLocation) &&
        Objects.equals(this.type, serviceOrderRelationship.type) &&
        Objects.equals(this.referredType, serviceOrderRelationship.referredType);
  }

这就是我一直在做的,但我永远无法到达 equals 方法中的最后一段代码:

@Test
public void testEquals() throws Exception {

    assertFalse(serviceOrderRelationship.equals(null));
    assertTrue(serviceOrderRelationship.equals(serviceOrderRelationship));
    assertFalse(serviceOrderRelationship.equals(serviceOrderRelationship1));
} 

您的问题可能是以下情况之一,在这些情况下,该方法会 return 过早。 如果 serviceOrderRelationshipserviceOrderRelationship1 是对同一对象的引用,则 true 将被 returned。同样,如果它们不是同一类型,则 false 将被 returned。如果 serviceOrderRelationship1 为 null,则 false 将被 returned。 如果 serviceOrderRelationship 为 null,则对其调用 equals 将抛出 NullPointerException。

首先感谢大家的回复!

我就是这样到达 equals 方法的最后一个块的。我必须初始化对象 di 和 di1 并将每个变量设置为相同的值,然后测试 equals 条件来回切换一个变量一次到不同的值。这是来自另一个 POJO 的示例:

    // Initialize objects
    di.setEdgeId("edgeId");
    di.setIdentityEndpoint("identityEndpoint");
    di.setUsername("username");

    di1.setEdgeId("edgeId");
    di1.setIdentityEndpoint("identityEndpoint");
    di1.setUsername("username");

    // Change value of var and test equal
    di1.setEdgeId("edgeIdm");
    assertFalse(di.equals(di1));
    di1.setEdgeId("edgeId");

    // same
    di1.setIdentityEndpoint("identityEndpointm");
    assertFalse(di.equals(di1));
    di1.setIdentityEndpoint("identityEndpoint");

    // Same
    di1.setUsername("usernamem");
    assertFalse(di.equals(di1));
    di1.setUsername("username");

    // Then at the end perform the other tests
    assertTrue(di.equals(di));
    assertTrue(di.equals(di1));
    assertFalse(di.equals(null));
    assertFalse(di.equals(42));