Как я могу проверить последний блок этого равного? - PullRequest
0 голосов
/ 15 февраля 2020

Как я могу JUnit проверить последний блок этого равного?

Любая помощь будет высоко ценится. Это метод, о котором идет речь:

@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));
} 

Ответы [ 2 ]

0 голосов
/ 19 февраля 2020

Прежде всего, спасибо всем за ваши ответы!

Вот так я смог добраться до последнего блока метода equals. Я должен был инициализировать оба объекта di и di1 и установить каждую переменную в одно и то же значение, а затем проверить условие равенства, переключая взад и вперед одну переменную за раз на другое значение. Это пример из другого 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));
0 голосов
/ 15 февраля 2020

Ваша проблема может быть в одном из следующих случаев, когда метод будет возвращаться преждевременно. Если serviceOrderRelationship и serviceOrderRelationship1 являются ссылками на один и тот же объект, будет возвращено значение true. Точно так же, если они не одного типа, возвращается false. Если serviceOrderRelationship1 равно нулю, возвращается false. Если serviceOrderRelationship равно нулю, то вызов равных для него вызовет исключение NullPointerException.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...