Vladimir Sitnikov created CALCITE-4659: ------------------------------------------
Summary: Introduce AssertJ and gradually migrate to its usage instead of Hamcrest Key: CALCITE-4659 URL: https://issues.apache.org/jira/browse/CALCITE-4659 Project: Calcite Issue Type: Improvement Reporter: Vladimir Sitnikov AssertJ has already been discussed in CALCITE-2457, yet it was forgotten. Note: I do not suggest replacing all the assertions with AssertJ, especially "compare with golden output" ones. The current issues with {{assertThat}}-based tests: 1) {{asertTrue}}, {{assertEquals(Object, Object)}} are prone to mistakes so one can get "expected vs actual wrong". 2) Hamcrest matches are hard to discover. In other words, one cant use autocomplete menu in IDE to see which other matches are available. 3) Hamcrest matches are hard to extend/implement. For instance, we have very limited amount of Hamcrest-based matches, and we do have a lot of Calcite-specific assertions. AssertJ solves the issue of API discoverability (one writes {{assertThat(...).containsExactly("skippedTest")}}), and AssertJ has a well-known path for extensibility. We can implement Calcite-specific assertions with AssertJ style, so the tests would be more consistent. ---- Refaster templates (see CALCITE-4658) might help to perform automatic conversion from JUnit-style assertions to AssertJ. There are templates to cleanup AssertJ assertions: https://github.com/palantir/assertj-automation -- This message was sent by Atlassian Jira (v8.3.4#803005)