ผลต่างระหว่างรุ่นของ "Afgu/unit testing 2"
ไปยังการนำทาง
ไปยังการค้นหา
Jittat (คุย | มีส่วนร่วม) |
Jittat (คุย | มีส่วนร่วม) |
||
แถว 27: | แถว 27: | ||
ที่นำอาร์เรย์ของสตริง <tt>words</tt> ไปค้นใน Google แล้วนับจำนวน แล้วคืนคำที่มีจำนวนผลลัพธ์การค้นมากที่สุด | ที่นำอาร์เรย์ของสตริง <tt>words</tt> ไปค้นใน Google แล้วนับจำนวน แล้วคืนคำที่มีจำนวนผลลัพธ์การค้นมากที่สุด | ||
+ | |||
+ | โค้ดของฟังก์ชันดังกล่าวอาจจะมีขั้นตอนประมาณดังด้านล่าง | ||
+ | |||
+ | <syntaxhighlight lang="javascript"> | ||
+ | function popularSpell(words) { | ||
+ | // 1. for each word w, do | ||
+ | // 2. generate google query url for w | ||
+ | // 3. make a request to google, get the result content | ||
+ | // 4. extract the number of results from the content | ||
+ | // 5. update the word with the maximum number | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | คำถามคือเราจะ test function ดังกล่าวได้อย่างไร? | ||
+ | |||
+ | ถามกลับกันคือ จากฟังก์ชันดังกล่าว มีอะไรเป็น '''อุปสรรค''' ในการ test ฟังก์ชันดังกล่าวบ้าง? | ||
==== แยก dependencies ==== | ==== แยก dependencies ==== |
รุ่นแก้ไขเมื่อ 08:49, 18 พฤศจิกายน 2556
- หน้านีเป็นส่วนหนึ่งของชุดแบบฝึกหัด Agile from the ground up
ใช้ของเก่าหากินหน่อยครับ เอกสารมาจาก01219343-55
- การหา test cases / test examples
- Slides: Good unit tests
- Testing dependent units: stubs, mocks, spies
- Slides: Testing units with dependencies
- Links:
- Mocks aren't stubs by Martin Fowler
- Mocks, Fakes, Stubs and Dummies -- terminologies of various test doubles.
เนื้อหา
แบบฝึกหัด
หา examples
- แบ่งกลุ่ม ใช้ script ที่แจกให้ห้อง (ต้นฉบับจะมาแปะที่นี่ต่อไป)
Isolation
สมมติว่าเราต้องการจะเขียนฟังก์ชัน
function popularSpell(words) {
}
ที่นำอาร์เรย์ของสตริง words ไปค้นใน Google แล้วนับจำนวน แล้วคืนคำที่มีจำนวนผลลัพธ์การค้นมากที่สุด
โค้ดของฟังก์ชันดังกล่าวอาจจะมีขั้นตอนประมาณดังด้านล่าง
function popularSpell(words) {
// 1. for each word w, do
// 2. generate google query url for w
// 3. make a request to google, get the result content
// 4. extract the number of results from the content
// 5. update the word with the maximum number
}
คำถามคือเราจะ test function ดังกล่าวได้อย่างไร?
ถามกลับกันคือ จากฟังก์ชันดังกล่าว มีอะไรเป็น อุปสรรค ในการ test ฟังก์ชันดังกล่าวบ้าง?
แยก dependencies
stubs
mocks/test spies
เราจะใช้ Sinon.JS ซึ่งเป็น test spies ในการทดลองเขียน