我在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);
}
Run Code Online (Sandbox Code Playgroud)
错误
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]>
Run Code Online (Sandbox Code Playgroud)
那是因为User user = new User("Jerry", "123", "Engineer");
正在创建一个新的User对象,User one = frc.readUser("Jerry");
并且还在创建一个新的User对象。这两个对象的字段值相同,但两个对象不同。但是,您可以通过执行此操作来断言。
assertThat(user).isEqualToComparingFieldByField(one);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
157 次 |
最近记录: |