تست نوشتن و معرفی یک کتاب
هر موقع در مورد اینکه توی شرکتهای خوب خارجی TDD کار میکنند صحبت میشد، پیش خودم میگفتم که خب توی ایران با توجه به ددلاینهای پروژه، اخلاق کارفرما و … نمیشه مثل اونا بود وگرنه منم حتما TDD کار میکردم. برای خودم تست ننوشتن رو همینجوری توجیه میکردم تا اینکه تصمیم گرفتم یه پروژه که فرصت زیاد داشت رو بصورت TDD انجام بدم. همیشه فکرمیکردم Unit Testing خیلی راحته و اگر توی تست نوشتن بخوام جاییش گیر کنم قسمت Integration Testing و End to End Testing هست. ولی همون اول کار تا شروع به Unit Test نوشتن کردم، برام کلی سوال جورواجور پیش اومد! مثلا چطوری باید تستهارو نامگذاری کرد؟ چطوری میشه متدهایی که نیاز دارند با پارامترهای زیاد تست بشن رو تست کرد؟ حتما باید برای تست نوشتن از mockito استفاده کرد یا نه؟
اینجا بود که فهمیدم مشکل من برای تست ننوشتن و TDD کار نکردن، فقط وقت نیست! باید بیشتر در مورد Testing مطالعه کنم. قبلا تیکه تیکه توی بلاگها و مدیوم مقالههایی خونده بودم ولی خیلی کمکم نکرده بود، برای همین این سری توی Amazon و Goodreads گشتم تا یه کتاب خوب پیدا کنم. در نهایت با توجه به امتیازهایی که بقیه داده بودند، کتاب Practical Unit Testing with JUnit and Mockito رو انتخاب کردم.
خیلی کتاب خوبیه، تقریبا یک سومش رو خوندم. جدای توضیحات کامل کتاب که منو خیلی با Testing آشنا کرد، مثال هایی که قدم به قدم داخل کتاب حل کرده خیلی خوبن. البته برای تست نوشتند یا TDD کار کردند، حتما لازم نیست کتاب بخونید ولی من خودم از زمانی که گذاشتم راضیم.
در آخر بحث نبود زمان برای تست نوشتن رو هم میشه اینجوری دید که چطور اگر پروژهای عجلهای باشه اصول OOP رعایت و توی تخمین زمانها محاسبه میشه، تست هم همینه، یعنی نباید به عنوان یه کار فانتزی و اضافه برای توسعه نرمافزار نباید بهش نگاه کرد و شبیه خیلی چیزهای دیگه هس که بنظرمون بدونه اونا توسعه اپ اشتباهه و حتما رعایت میکنیمشون. اگر دوست دارید در مورد کتاب بخونید، لینک آمازونش اینه (توی گوگل بگردید pdfشم راحت پیدا میشه):
Practical Unit Testing with JUnit and Mockito
https://www.amazon.com/Practical-Unit-Testing-JUnit-Mockito/dp/8393489393