I mostly agree with Jack. I think that if I were starting a new project,
I'd probably want to use the new assertions because they are readable,
appear to be type-specific, and have some nice helpers for some types. But
I don't see a lot of benefit to moving over to them right now and it would
be a significant amount of changes. The biggest advantage is already solved
by AssertHelpers, too.

On Tue, Jun 8, 2021 at 9:27 AM Jack Ye <yezhao...@gmail.com> wrote:

> I would be on the more cautious side when introducing a new test utils
> library. Based on the PR, we are mostly changing things like
> Assert.assertEquals to another syntax, but that syntax is not complex in
> the first place. If we introduce AssertJ, there will be a mixture of 2
> syntaxes, which is confusing and also there is a learning curve for the new
> library.
>
> We already have AssertHelpers to deal with exceptions, and I don't see why
> we should have 2 ways to do the same thing.
>
> Are there any additional benefits that I didn't see?
>
> -Jack Ye
>
>
> On Tue, Jun 8, 2021 at 8:29 AM Eduard Tudenhoefner <edu...@dremio.com>
> wrote:
>
>> Hi everyone,
>>
>> I was wondering what the appetite would be for introducing AssertJ
>> <https://assertj.github.io/doc/> to the project?
>> I believe it's a really good testing library that makes writing
>> assertions much more intuitive, as the assertions are written in kind-of a
>> fluent way. The test code ends up being more readable and it provides an
>> actually useful error message when assertions fail.
>>
>> There are some good examples of how AssertJ is used here
>> <https://assertj.github.io/doc/#assertj-core-assertions-guide>, but
>> personally what I like most about AssertJ is testing exceptional code
>> <https://assertj.github.io/doc/#assertj-core-exception-assertions-assertThatThrownBy>,
>> where you want to make sure some code throws a particular exception and
>> also has message Xyz or some other property that you want to assert on (no
>> more *@Test(expected = SomeException.class)* or *try-catch *code with
>> Assert.fail()).
>>
>> I've seen that the project already has the *AssertHelpers* class, but I
>> believe we can improve some stuff there as well and make overall testing
>> nicer.
>>
>> I took the liberty and opened PR#2684
>> <https://github.com/apache/iceberg/pull/2684>, which introduces AssertJ
>> to a subset of tests just to show its usage and its benefit.
>>
>> Please let me know what you think
>>
>> Eduard
>>
>

-- 
Ryan Blue

Reply via email to