เลยออกมาเป็นอย่างที่เห็นครับ ต่อไปนี้ครับ
package org.tspec.hangman
import org.tspec.hangman.Hangman
เรื่อง 'คนแขวนคอ'
อธิบาย 'การตั้งค่าที่เหมาะสมสำหรับเริ่มต้น',{
กำหนดให้ 'มีวัตถุคนแขวนคอ', {
hangman = new Hangman()
}
เมื่อ 'ตั้งค่าคำไว้เป็นค่า hello',{
hangman.word = 'hello'
}
แล้ว 'ตัววัตถุควรมีการตั้งค่าที่เหมาะสม',{
hangman.word.should == 'hello'
hangman.wrongs.should == 0
hangman.maxGuess.should == 12
hangman.unrevealedWord.should == ['_', '_', '_', '_', '_']
hangman.finished.should == false
}
}โค้ดด้านบนเป็นตัวอย่างสคริปต์ภาษาไทย + Groovy (1 สถานการณ์) ที่เครื่องมือชื่อ tspec สามารถนำไปรันได้
และจะรายงานออกมาเป็นลักษณะคล้าย ๆ ต่อไปนี้ (ด้านล่างผมรันสคริปต์เต็ม ซึ่งมี 4 สถานการณ์)
เรื่อง คนแขวนคอ
การตั้งค่าที่เหมาะสมสำหรับเริ่มต้น
กำหนดให้ มีวัตถุคนแขวนคอ และเมื่อตั้งค่าคำไว้เป็นค่า hello
แล้วตัววัตถุควรมีการตั้งค่าที่เหมาะสม / ผ่าน
จบ สถานการณ์
การตั้งค่าจำนวนครั้งที่เล่นผิดให้เป็น 0 ถ้าผู้เล่นต้องการเล่นเกมใหม่
กำหนดให้ มีวัตถุคนแขวนคอ เพื่อเล่นคำว่า hello และเมื่อผู้เล่นเล่นเกมไปแล้วด้วยการทาย a และสั่งให้เริ่มเกมใหม่
แล้วจำนวนครั้งของการเล่นผิดควรเป็น 0 / ผ่าน
จบ สถานการณ์
การเดาผิดหมด
กำหนดให้ มีวัตถุคนแขวนคอ เพื่อเล่นคำว่า hello และเมื่อเดาครั้งแรกผิด
แล้วจำนวนการผิดควรเป็น 1 / ผ่าน
และเมื่อเดาครั้งที่ 2 ผิด จำนวนการผิดควรเป็น 2 / ผ่าน
และเมื่อเดาผิดครบ 12 ครั้ง จำนวนการผิดควรเป็น 12 / ผ่าน
แล้วหากเดาผิดอีกครั้ง ควรขว้างข้อผิดพลาดจำนวนครั้งที่เดาเกิน / ผ่าน
จบ สถานการณ์
การเดาถูกหมด
กำหนดให้ มีวัตถุคนแขวนคอ เพื่อเล่นคำว่า hello และเมื่อเดาครั้งแรกถูก
แล้วจำนวนครั้งที่ผิดควรเป็น 0 / ผ่าน
และคำที่ซ่อนอยู่ควรเป็น h และช่องว่าง 4 ตัว / ผ่าน
และเมื่อทายด้วย e / ผ่าน
แล้วจำนวนครั้งที่ผิดควรจะยังเป็น 0 อยู่ / ผ่าน
และคำที่ซ่อนอยู่ควรเป็น he และช่องว่าง 3 ตัว / ผ่าน
และเมื่อทายด้วย l / ผ่าน
แล้วจำนวนครั้งที่ผิดควรจะยังเป็น 0 อยู่ / ผ่าน
และคำที่ซ่อนอยู่ควรเป็น hell และช่องว่าง 1 ตัว / ผ่าน
และเมื่อทายด้วย o / ผ่าน
แล้วจำนวนครั้งที่ผิดควรจะยังเป็น 0 อยู่ / ผ่าน
และคำที่ซ่อนอยู่ควรเป็น hello และจบการเล่น / ผ่าน
จบ สถานการณ์
จำนวนสถานการณ์ทั้งหมด: 4 ผ่านตอนนี้ตัวรายงานที่สร้างออกมายังเป็นข้อความอย่างเดียวแบบตัวอย่างข้างบนอยู่ กำลังจะทำให้สร้างรายงานออกมาเป็น XML และ HTML เพื่อให้สามารถนำไปใช้ต่อได้ครับ และผมตั้งใจจะให้มันเป็นเครื่องมือเดี่ยว ๆ ที่นำไปใช้ได้ในแบบเดียวกับ JUnit อีกสักพักจะทำออกมาให้ดาวน์โหลดกันไปใช้แน่นอนครับ
ตอนนี้สามารถดูโค้ดทั้งหมดได้จาก
http://geogia.google...k/spec/new_src/
ตัวอย่างเต็มของ HangmanStory ดูได้จาก
http://geogia.googlecode.com/svn/trunk/spe...manStory.groovy
ต้นฉบับภาษา Ruby + อังกฤษ จากเวบของคุณข้าวโพดหวาน
http://www.thaidev.org/?p=55

Help















