Тестээ гүйцэтгэлтэйгээ холбох

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

Дууриамал тестийн аргаар тест бичихдээ SUT өөрийн хамтрагч объектуудтай зөв харилцаж байгаа эсэхийг нь батлахын тулд түүний *outbound calls* (хөрш объекттой харилцах гаралтын хандалтуудыг) -ыг нь тестлэдэг. Харин сонгодог аргаар бичигдсэн тестүүдэд эцсийн үр дүнг л шалгадаг учир яаж тэнд хүрснийг нь анхаарч авч үздэггүй. Тиймээс дууриамал аргаар хөгжүүлэгдсэн тестүүд методынхоо гүйцэтгэлтэй илүү холбогдсон (coupled) байдаг. Хамтрагчууд (collaborators) руугаа хандах дуудалтыг өөрчилөхөд л дууриамал аргаар бичигдсэн тестыг зогсоож, ажиллахгүй болгодог.

Ингэж холбож (coupling хийж) өгөх нь цаашид анхаарвал зохих хэдэн зүйлүүд рүү хөтөлдөг. Хамгийн чухал нь Тестээр Хөтлөгдөх Хөгжүүлэлт (Test Driven Development)-д гарах өөрчлөлт юм. Дууриамал аргаар бол тест бичих нь таныг гүйцэтгэлийнхээ юу хийх үйлдлүүдийг бодох боломж олгодог. Үүнийг дууриамал аргаар хөгжүүлэгчид давуу тал гэж үздэг. Харин сонгодог аргаар хөгжүүлэгчид зөвхөн гадаад интэрфэйсээс нь юу хийгдэхийг нь анхаарч бодох нь чухал гэж үздэг ба гүйцэтгэлийн бүх нарийн ширийнийг нь тестээ бичиж дуусах хүртлээ анхаарч авч үздэггүй.

Гүйцэтгэлтэйгээ холбох нь мөн *refactoring* хийхэд бас хамаатай. Учир нь дууриамал аргаар бичигдсэн тестүүдэд SUT-ын аливаа гүйцэтгэлийг (implementation) нь өөрчилөхөд л бичигдсэн тестүүд нь ажиллахгүй болох боломж нь сонгодог аргаар бичигдсэн тестүүдээс илүү өндөр байдаг.

Тестээ гүйцэтгэлттэйгээ холбох нь мөн дууриамал аргаар хөгжүүлэх tool-үүдэдээс мөн хамаардаг. Учир нь ихэнхдээ тэдгээр tool-үүдэд тухайн тестэнд чухал хамааралгүй байсан ч методуудын дуудлага болон параметер бүрийг тусгайлан оноож, зааж өгдөг. jMock tool-ийн нэг онцлог нь тэдгээр *тэгэх байх гэсэн нөхцлүүдийг* (expectations) тодорхойлохдоо илүү уян хатан ба чухал хамааралгүй хэсэгт нь нарийн тодорхойлолт оноож, зааж өгөхгүйгээр байх боломжыг олгодог. Энэ нь refactoring хийхэд мөн илүү хялбар байдаг.

 

Нийтлэлийг бүтнээр нь мөн 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