RSpec - บทนำ
RSpec เป็นกรอบการทดสอบหน่วยสำหรับภาษาโปรแกรม Ruby RSpec แตกต่างจากเฟรมเวิร์ก xUnit แบบเดิมเช่น JUnit เนื่องจาก RSpec เป็นเครื่องมือในการพัฒนาพฤติกรรม สิ่งนี้หมายความว่าการทดสอบที่เขียนใน RSpec มุ่งเน้นไปที่ "พฤติกรรม" ของแอปพลิเคชันที่กำลังทดสอบ RSpec ไม่ได้ให้ความสำคัญกับวิธีการทำงานของแอปพลิเคชัน แต่เป็นการทำงานแทนกล่าวคือสิ่งที่แอปพลิเคชันทำจริง
RSpec Environment
ก่อนอื่นคุณจะต้องติดตั้ง Ruby บนคอมพิวเตอร์ของคุณ แต่ถ้าคุณยังไม่ได้ทำมาแล้วก่อนหน้านี้แล้วคุณสามารถดาวน์โหลดและติดตั้งทับทิมจากเว็บไซต์ทับทิมหลัก - ทับทิม
หากคุณกำลังติดตั้ง Ruby บน Windows คุณควรมีตัวติดตั้ง Ruby สำหรับ Windows ที่นี่ที่ - http://www.rubyinstaller.org
สำหรับบทช่วยสอนนี้คุณจะต้องใช้โปรแกรมแก้ไขข้อความเช่น Notepad และคอนโซลบรรทัดคำสั่งเท่านั้น ตัวอย่างที่นี่จะใช้ cmd.exe บน Windows
ในการเรียกใช้ cmd.exe เพียงคลิกที่เมนู Start แล้วพิมพ์“ cmd.exe” จากนั้นกดปุ่ม Return
ที่พรอมต์คำสั่งในหน้าต่าง cmd.exe ของคุณพิมพ์คำสั่งต่อไปนี้เพื่อดูว่าคุณใช้ Ruby เวอร์ชันใด -
ruby -v
คุณควรเห็นผลลัพธ์ด้านล่างที่มีลักษณะคล้ายกับสิ่งนี้ -
ruby 2.2.3p173 (2015-08-18 revision 51636) [x64-mingw32]
ตัวอย่างในบทช่วยสอนนี้จะใช้ Ruby 2.2.3 แต่ Ruby เวอร์ชันใดก็ตามที่สูงกว่า 2.0.0 ก็เพียงพอแล้ว ต่อไปเราต้องติดตั้งอัญมณี RSpec สำหรับการติดตั้ง Ruby ของคุณ อัญมณีคือห้องสมุด Ruby ซึ่งคุณสามารถใช้ในรหัสของคุณเอง ในการติดตั้งอัญมณีคุณต้องใช้gem คำสั่ง
มาติดตั้ง Rspec gem กันเลย กลับไปที่หน้าต่าง cmd.exe แล้วพิมพ์ข้อความต่อไปนี้ -
gem install rspec
คุณควรมีรายชื่ออัญมณีที่ต้องพึ่งพาซึ่งติดตั้งไว้ซึ่งเป็นอัญมณีที่อัญมณี rspec ต้องทำงานอย่างถูกต้อง ในตอนท้ายของผลลัพธ์คุณจะเห็นสิ่งที่มีลักษณะเช่นนี้ -
Done installing documentation for diff-lcs, rspec-support, rspec-mocks,
rspec-expectations, rspec-core, rspec after 22 seconds
6 gems installed
ไม่ต้องกังวลหากผลลัพธ์ของคุณไม่เหมือนกันทุกประการ นอกจากนี้หากคุณใช้คอมพิวเตอร์ Mac หรือ Linux คุณอาจต้องเรียกใช้gem install rspec คำสั่งโดยใช้ sudo หรือใช้เครื่องมือเช่น HomeBrew หรือ RVM เพื่อติดตั้ง rspec gem
Hello World
เริ่มต้นด้วยการสร้างไดเร็กทอรี (โฟลเดอร์) เพื่อจัดเก็บไฟล์ RSpec ของเรา ในหน้าต่าง cmd.exe ของคุณพิมพ์ดังต่อไปนี้ -
cd \
จากนั้นพิมพ์ -
mkdir rspec_tutorial
และสุดท้ายพิมพ์ -
cd rspec_tutorial
จากตรงนี้เราจะสร้างไดเร็กทอรีชื่อ spec ขึ้นมาอีกโดยพิมพ์ -
mkdir spec
เราจะจัดเก็บไฟล์ RSpec ไว้ในโฟลเดอร์นี้ ไฟล์ RSpec เรียกว่า "ข้อมูลจำเพาะ" หากสิ่งนี้ดูสับสนสำหรับคุณคุณสามารถคิดว่าไฟล์ข้อมูลจำเพาะเป็นไฟล์ทดสอบ RSpec ใช้คำว่า“ spec” ซึ่งเป็นรูปแบบย่อของ“ specification”
เนื่องจาก RSpec เป็นเครื่องมือทดสอบ BDD เป้าหมายคือมุ่งเน้นไปที่สิ่งที่แอปพลิเคชันทำและเป็นไปตามข้อกำหนดหรือไม่ ในการพัฒนาที่ขับเคลื่อนด้วยพฤติกรรมข้อกำหนดมักจะอธิบายในรูปแบบของ "เรื่องราวของผู้ใช้" RSpec ได้รับการออกแบบมาเพื่อให้ชัดเจนว่ารหัสเป้าหมายทำงานอย่างถูกต้องหรือไม่กล่าวอีกนัยหนึ่งเป็นไปตามข้อกำหนด
กลับไปที่รหัส Hello World ของเรา เปิดโปรแกรมแก้ไขข้อความและเพิ่มรหัสต่อไปนี้ -
class HelloWorld
def say_hello
"Hello World!"
end
end
describe HelloWorld do
context “When testing the HelloWorld class” do
it "should say 'Hello World' when we call the say_hello method" do
hw = HelloWorld.new
message = hw.say_hello
expect(message).to eq "Hello World!"
end
end
end
จากนั้นบันทึกลงในไฟล์ชื่อ hello_world_spec.rb ในโฟลเดอร์ข้อมูลจำเพาะที่คุณสร้างไว้ด้านบน กลับมาที่หน้าต่าง cmd.exe แล้วรันคำสั่งนี้ -
rspec spec spec\hello_world_spec.rb
เมื่อคำสั่งเสร็จสมบูรณ์คุณจะเห็นผลลัพธ์ที่มีลักษณะเช่นนี้ -
Finished in 0.002 seconds (files took 0.11101 seconds to load)
1 example, 0 failures
ขอแสดงความยินดีคุณเพิ่งสร้างและทดสอบหน่วย RSpec ครั้งแรกของคุณ!
ในส่วนถัดไปเราจะพูดถึงไวยากรณ์ของไฟล์ RSpec ต่อไป