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 ต่อไป