我想断言从我在Junit中使用断言测试的方法返回的对象。AssertEquals,但它给出的测试用例失败,即使两个对象是相同的
Expected :Customer{Id=1, Name='ABC', Price=350, Type='ABC'} Actual :Customer{Id=1, Name='ABC', Price=350, Type='ABC'}
@Test
public void getCustomerById_Test(){
Dishes test1 = repo.getById(1);
assertEquals(ExpectedObject,ActualObject);
}
JUnit方法assertEquals
只是使用类的equals
方法来比较对象-您必须正确实现该方法才能正确地断言工作。您可以在多个在线资源中阅读更多关于实现equals
的信息,例如在这里。
如果你不想在验证类中实现equals
,你也可以使用assertEquals
来比较你感兴趣的对象字段,像这样:
assertEquals(7, actual.getSomeValue());
assertEquals("abcd", actual.getOtherValue());
如果您添加了AssertJ库,您可以使用它的usingRecursiveComparison
方法-详细信息请参阅文档。