如何断言Java Springbok Unit中的返回对象



我想断言从我在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方法-详细信息请参阅文档。

最新更新