[ 
https://issues.apache.org/jira/browse/KAFKA-16929?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17853857#comment-17853857
 ] 

Chia-Ping Tsai commented on KAFKA-16929:
----------------------------------------

{quote}

Unifying the way of assertions is a valuable thing, but is it really necessary 
to develop an assertion component?

If you are developing assertions for Kafka, do you want to disable hamcrest and 
junit?

{quote}

My point was to unify the "usage" and so I prefer to reuse one of existent 
assertion tools to implement kafka assertions. That is why I said most changes 
are to replace the imports from junit/hamcrest to org.apache.kafka.Assertations

 

> Conside defining kafka-specified assertion to unify testing style
> -----------------------------------------------------------------
>
>                 Key: KAFKA-16929
>                 URL: https://issues.apache.org/jira/browse/KAFKA-16929
>             Project: Kafka
>          Issue Type: Wish
>            Reporter: Chia-Ping Tsai
>            Assignee: Chia-Ping Tsai
>            Priority: Major
>
> There are many contributors who trying to fix chaos of kafka testing. That 
> includes following huge works:
>  # replace powermock/easymock by mockito (KAFKA-7438)
>  # replace junit 4 assertion by junit 5 (KAFKA-7339)
> We take 6 years to complete the migration for task 1. The second task is in 
> progress and I hope it can be addressed in 4.0.0
> When reviewing I noticed there are many different tastes in code base. That 
> is why the task 1 is such difficult to rewrite. Now, the rewriting of 
> "assertion" is facing the same issue, and I feel the usage of "assertion" is 
> even more awkward than "mockito" due to following reason.
>  # there are two "different" assertion style in code base - hamcrest and 
> junit - that is confused to developers
>  # 
> [https://github.com/apache/kafka/pull/15730#discussion_r1567676845|https://github.com/apache/kafka/pull/15730#discussion_r1567676845)]
>  # third-party assertion does not offer good error message, so we need to use 
> non-common style to get useful output 
> [https://github.com/apache/kafka/pull/16253#discussion_r1633406693|https://github.com/apache/kafka/pull/16253#discussion_r1633406693)]
> IMHO, we should consider having our kafka-specified assertion style. Than can 
> bring following benefit.
>  # unify the assertion style of whole project
>  # apply customized assertion. for example:
>  ## assertEqual(List<Y>, List<K>, F<K, Y>))
>  ## assertTrue(Supplier<B>, Duration) - equal to `TestUtils.waitForCondition`
>  # auto-generate useful error message. For example: assertEqual(0, list) -> 
> print the list
> In short, I'd like to add a new module to define common assertions, and then 
> apply it to code base slowly.
> All feedback/responses/objections are welcomed :)
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to