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

Орчуулгыг бүтэн эхээр нь та 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

Та WordPress.com гэсэн бүртгэлээрээ сэтгэгдэл бичиж байна. Гарах /  Өөрчлөх )

Google+ photo

Та Google+ гэсэн бүртгэлээрээ сэтгэгдэл бичиж байна. Гарах /  Өөрчлөх )

Twitter picture

Та Twitter гэсэн бүртгэлээрээ сэтгэгдэл бичиж байна. Гарах /  Өөрчлөх )

Facebook photo

Та Facebook гэсэн бүртгэлээрээ сэтгэгдэл бичиж байна. Гарах /  Өөрчлөх )

w

Connecting to %s