JPa/Hibernate/JUnit:如何在 ToString 中使用正确的反射方法



我想通过JUnit在Spring/JPA/Hibernate架构中测试我的服务。

暂时一切都很好,但我使用了 ToString 的覆盖方法来验证内容:

@Override
public String toString() {
    return ToStringBuilder.reflectionToString(this, 
                    ToStringStyle.MULTI_LINE_STYLE);
}

它使用库commons.lang。结果是正确的,但是当我检查具有关系的实体(设置为@OneToMany或@ManyToMany)时,它很快就会变得不可读。

谁知道有一种方法可以使 JUnit 测试结果在控制台中更具可读性?

谢谢。

我建议使用龙目岛注释@EqualsAndHashcode@ToString

@EqualsAndHashcode有助于避免错误,@ToString为您提供一个很好的可读输出toString()

您可以在其中排除不需要的字段:

@EqualsAndHashCode(exclude={"someManyToManyCollection", "dontMather"})
@ToString(exclude={"someManyToManyCollection", "dontMather"})

或者让他们只使用你感兴趣的字段:

@EqualsAndHashCode(of={"id", "someKey"})
@ToString(of={"id", "someKey"})

这应该允许您通过toString()获得可读性,并且可以将对象与测试中的yourEntity.equals(otherEntity)进行比较。

相关内容

  • 没有找到相关文章

最新更新