Тестийн өгөгдлийг тодорхойлох

Орчуулгыг бүтэн эхээр нь та wordpress-ээс болон   gitbook.com  -с  үзэх боломжтой.

Сонгодог аргаар бол та SUT-ыг тестлэхийн тулд түүнийг хамтрагчуудыг мөн адил үүсгэж өгөх хэрэгтэй болно. Хэдийгээр дээрх жишээнд хэдхэн цөөхөн объектууд ашиглагдаж байгаа боловч жинхэнэ тестэнд олон тооны хамтрагч дэд объектууд шаардлагатай болдог. Ихэвчлэн эдгээр объектууд тест тус бүрт дээр шинээр үүсэж, мөн устгагдаг.

Харин дууриамал тестийн аргаар бол зөвхөн SUT л үүсдэг ба бусад хөрш, хамтрагч объектуудых нь оронд дууриамал объектуудыг ашигладаг. Ингэж илүү нүсэр тестийн өгөгдөл үүсгэхээс зайлхийж болдог. (Ямартай ч ингэж тодорхойлдог. Би нилээд төвөгтэй үүсгэгддэг дууриамал объектын бүтэц, байдалтай таарч байсан ч энэ маань магадгүй tool-үүдийг буруу ашигласнаас байж ч болох юм.)

Бодит байдал дээр сонгодог аргаар хөгжүүлэгчид цогц тестийн өгөгдлүүдийг дахин ашиглахыг илүү эрмэлздэг. Хамгийн энгийнээр бол та тодорхойлох өгөгдлүүдийг xUnit-ын *setup* метод-д хийж өгнө. Харин олон классуудад ашиглагдах илүү цогц өгөгдлүүдлийн хувьд тусгайлан өгөгдлүүдийг үүсгэхээр зориулагдсан класс үүсгэж өгнө. Би ихэвчлэн эдгээр класуудыг ThoughtWorks -ын анхны XP төслүүдэд нэрлэж байсанчлан [Object Mother](http://martinfowler.com/bliki/ObjectMother.html)-ууд гэж нэрлэдэг. Том хэмжээний сонгодог тестүүдэд mother-уудыг ашиглах нь зайлшгүй боловч эдгээр mother-ууд нь илүүдэл тордолт, арчилгаа шаарддаг ба тэдгээрт хийгдэх өөрчлөлт бүр тестүүдэд хэд хэдэн давалгаалж нөлөөлдөг. Өгөгдлүүдийг тодорхойлох нь тестийн ажиллах хурданд мөн нөлөөлдөг боловч би үүнийг хэрэв зөв хийсэн тохиолдолд асуудал болсон гэж сонсоогүй л юмдаг. Зарим нэг онцгой давхар үүсгэгддэг объектуудаас бусад тохилдолд ихэнхдээ өгөдлүүдийн объектууд үүсгэхэд хялбархан байдаг.

Хачирхайлтай нь хоёр арга хоёулаа бие биенээ маш их ажиллагаатай гэж дүгнэдэг. Дууриамал тестийн аргаар хөгжүүлэгчид “тестийн өгөгдлийг үүсэх нь маш их ажиллагаатай” гэдэг бол харин сонгодогууд “эдгээр нь дахин ашиглагддаг харин та нар тест бүрт дууриамал объектууд үүсгэдэг” гэдэг.

 

Нийтлэлийг бүтнээр нь мөн gitbook.com -с унших, татаж авах боломжтой. Холбоос https://www.gitbook.com/book/erheme318/mocks-aren-t-stubs

 

Advertisements

Хариулт үлдээх

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Өөрчлөх )

Twitter picture

You are commenting using your Twitter account. Log Out / Өөрчлөх )

Facebook photo

You are commenting using your Facebook account. Log Out / Өөрчлөх )

Google+ photo

You are commenting using your Google+ account. Log Out / Өөрчлөх )

Connecting to %s