Ожидаемая ошибка утверждения JUnit и фактическая, показывающая то же самое - PullRequest
0 голосов
/ 12 июня 2019

Мои ожидаемые и действительные в моем Assertionerror показывают то же самое. И они одинаковые ссылки. Кто-нибудь знает, почему и как это исправить? Код и ошибка ниже. Заранее спасибо:

@Test
public void test_CreateAUserWritesAFileReadsFilePrintsFile() throws IOException {
    //Arrange
    WriteCommand fwc = new FileWriteCommand();
    ReadCommand frc = new FileReadCommand();
    RegistrationController rc = new RegistrationController();
    User user = new User("Jerry", "123", "Engineer");
    rc.registerNewUser("Jerry", "123", "Engineer");
    fwc.writeUser(user);
    User one = frc.readUser("Jerry");
    System.out.println(one);
    User expected = one;

    //Act
    User actual = user;

    //Assert
    assertEquals(expected, actual);

}

Error

java.lang.AssertionError: expected: com.fdmgroup.userregistration.User<User [username=Jerry, password=123, role=Engineer]> but was: com.fdmgroup.userregistration.User<User [username=Jerry, password=123, role=Engineer]>

Ответы [ 2 ]

5 голосов
/ 12 июня 2019

Это потому, что User user = new User("Jerry", "123", "Engineer"); создает новый объект User и User one = frc.readUser("Jerry"); также создает новый объект User.значения полей этих двух объектов одинаковы, но эти два объекта различны.Тем не менее, вы можете утверждать, что делая это.

assertThat(user).isEqualToComparingFieldByField(one);
0 голосов
/ 12 июня 2019

Поля имеют одинаковые значения, но сравниваемые объекты различны.

Утверждение эквивалентности между полями объектов должно быть успешным, и, если я полностью не пойму, что вы проверяете, это более правильно.

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