Thank you for the response. I like that JSONassert approach. Added that idea into the ticket. https://issues.apache.org/jira/browse/BEAM-9000
On Thu, Dec 19, 2019 at 5:26 PM Luke Cwik <[email protected]> wrote: > > What about using JSONassert or hamcrest-json or some other JSON matcher > library? > > On Thu, Dec 19, 2019 at 1:17 PM Tomo Suzuki <[email protected]> wrote: >> >> Hi Beam developers, >> >> There are many Java tests relying on toString() methods for assertions >> [1]. This style is prone to unnecessary maintenance of the test code >> when upgrading dependencies. For example, BEAM-8695 encountered ~10 >> comparison failures due to change in toString implementation when I >> tried to upgrade google-http-client [2]. >> >> On the other hand, constructing expected objects is cumbersome and >> less readable [3]. >> >> Therefore, I'm thinking a better way to write assertions on subclasses >> of GenericJson in BEAM-9000 "Java Test Assertions without toString for >> GenericJson subclasses." So far, I wrote 2 options there: >> - Assertion using Map >> - Create assertEqualsOnJson >> >> If you think of a better way or opinions on how these tests should be, >> please let me know. >> >> >> [1]: >> https://github.com/suztomo/beam/commit/314b74b127c1dce9d8de9485aeb31321be8e13c8#r36506354 >> [2]: >> https://issues.apache.org/jira/browse/BEAM-8695?focusedCommentId=16999527&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-16999527 >> [3]: >> https://github.com/suztomo/beam/commit/314b74b127c1dce9d8de9485aeb31321be8e13c8#r36509217 >> >> -- >> Regards, >> Tomo -- Regards, Tomo
