CorTorE / blogging-study

✏️ A collection of studies and experiments in blogging
2 stars 0 forks source link

✏️ [Spring Boot] Test Builder Pattern으로 BDD를 표현할 수 있을까? #5

Open psychology50 opened 3 days ago

psychology50 commented 3 days ago

내용 (한줄 요약)

iOS의 Quick에서 착안한 계층적 테스트 시나리오 작성 방법 연구 (그런데 실패한..)

예상 독자

더 나은 테스트 방법에 대해 고민하는 (변태) 개발자

블로그 링크

https://jaeseo0519.tistory.com/425

asuan99 commented 3 days ago

@psychology50

First of all, I'm sorry that I can't provide feedback on the technical aspects becuase I'm not a backend developer and haven't worked with various domains or design patterns.

Nevertheless, I have some questions about the idea.

BangDori commented 2 days ago

테스트 가독성과 효율성을 높이기 위해 깊이 있는 고민과 시도를 통해 얻은 경험을 작성해준 포스팅 잘 읽었습니다! Conclusion에서 Improvement Directions에서 스스로에게 질문하고, 이를 대답하기 위해 들인 노력이 가늠이 안 갈 정도로 정말 대단하시네요..!!!

다소 아쉬운 점이라고 한다면 전달하려는 내용과 달리 코드의 양이 너무 많아 독자가 글을 읽다가 지칠 수도 있겠다는 생각이 들었어요. (실제로 제가 읽다가 지침.. 너무 어려워요 🥲) 특히나 Test Builder Pattern for Domain Rule에서는 글을 읽는 게 아니라 코드를 읽는다는 느낌이 강하게 느껴져서, 코드 전체에 대한 내용은 깃헙에 위임하고 글에서 전달하고자 하는 내용이 담긴 코드의 일부만 보여주는 방식을 적용하는 것도 좋을 것 같아요~~

이 점을 제외하고는 글의 구성도 깔끔하고 마지막 결론까지 정말 재미있었습니다~

psychology50 commented 2 days ago

@asuan99 Thank you for your review. :)

At first, I didn’t expect a technical review.
Rather, I appreciate that you patiently read my post even though you’re not familiar with backend engineering.

In fact, Domain Rule simply refers to “who do we send push notifications to?”

For example:

  1. Sender is always excluded from notification targets
  2. Sessions viewing chat room list are excluded
  3. If any session of a user is viewing the target chat room, all sessions of that user are excluded
  4. etc...

It turned out to be quite complex to implement these rules in code, and I regret not explaining this more clearly in the post.
In particular, since I already organized these rules in the Analysis section, it would have been better to first explain why they are important.

The code is secondary, so I hope you see it as a reference.
As you said, it would have been better if I had explained this context beforehand.

psychology50 commented 2 days ago

@BangDori

Thank you for your review. 🤗

As you mentioned earlier, you might have felt fatigued due to the extensive amount of code.
I actually considered this beforehand and decided to show only the interface and annotations instead of the full implementation.
However, it seems that even this approach might have been overwhelming for those unfamiliar with Java.

What do you think would be a better way to explain this more easily?
Would it have been better to clarify that reading detailed code wasn’t necessary?

BangDori commented 2 hours ago

@psychology50

제 생각에는 재서님이 말씀하신 것처럼 글의 도입부에 코드를 반드시 자세히 읽을 필요는 없다라는 것을 안내해주것도 글을 읽는 독자의 부담을 덜어줄 수 있는 장치가 될 수 있을 것 같아요!

코드는 ...사실 어제부터 고민을 해봤는데, 질문에 대한 명확한 답을 제시해드리기가 어렵네요. ㅋ큐ㅠ