RSpec - Giriş

RSpec, Ruby programlama dili için bir birim testi çerçevesidir. RSpec, JUnit gibi geleneksel xUnit çerçevelerinden farklıdır çünkü RSpec, Davranış odaklı bir geliştirme aracıdır. Bunun anlamı şudur: RSpec'de yazılan testler, test edilmekte olan bir uygulamanın "davranışına" odaklanır. RSpec, uygulamanın nasıl çalıştığına değil, bunun yerine nasıl davrandığına, başka bir deyişle uygulamanın gerçekte ne yaptığına vurgu yapıyor.

RSpec Ortamı

Öncelikle bilgisayarınıza Ruby kurmanız gerekecek. Zaten daha önce yapmadıysanız Ancak, o zaman indirip ana Yakut web sitesinden Ruby yükleyebilirsiniz - Ruby .

Ruby'yi Windows'a yüklüyorsanız, burada Windows için Ruby yükleyicisine sahip olmalısınız - http://www.rubyinstaller.org

Bu eğitim için, yalnızca Not Defteri ve bir komut satırı konsolu gibi bir metin düzenleyicisine ihtiyacınız olacak. Buradaki örnekler Windows'ta cmd.exe'yi kullanacaktır.

Cmd.exe'yi çalıştırmak için, Başlat menüsünü tıklayın ve “cmd.exe” yazın, ardından Return tuşuna basın.

Hangi Ruby sürümünü kullandığınızı görmek için cmd.exe pencerenizdeki komut istemine aşağıdaki komutu yazın -

ruby -v

Buna benzer görünen aşağıdaki çıktıyı görmelisiniz -

ruby 2.2.3p173 (2015-08-18 revision 51636) [x64-mingw32]

Bu eğitimdeki örnekler Ruby 2.2.3'ü kullanacaktır ancak 2.0.0'dan daha yüksek herhangi bir Ruby sürümü yeterli olacaktır. Sonra, Ruby kurulumunuz için RSpec gemini kurmamız gerekiyor. Bir mücevher, kendi kodunuzda kullanabileceğiniz bir Ruby kütüphanesidir. Bir mücevher takmak için,gem komut.

Şimdi Rspec gemini kuralım. Cmd.exe Pencerenize geri dönün ve aşağıdakileri yazın -

gem install rspec

Yüklenmiş olan bağımlı mücevherlerin bir listesine sahip olmalısınız, bunlar rspec gem'in düzgün çalışması için gereken mücevherlerdir. Çıktının sonunda şuna benzer bir şey görmelisiniz -

Done installing documentation for diff-lcs, rspec-support, rspec-mocks,
   rspec-expectations, rspec-core, rspec after 22 seconds 
6 gems installed

Çıktınız tam olarak aynı görünmüyorsa endişelenmeyin. Ayrıca, bir Mac veya Linux bilgisayar kullanıyorsanız, aşağıdakilerden birini çalıştırmanız gerekebilir:gem install rspec komut kullanarak sudo veya rspec gemini kurmak için HomeBrew veya RVM gibi bir araç kullanın.

Hello World

Başlamak için, RSpec dosyalarımızı depolamak için bir dizin (klasör) oluşturalım. Cmd.exe pencerenizde aşağıdakileri yazın -

cd \

Sonra yazın -

mkdir rspec_tutorial

Ve son olarak şunu yazın -

cd rspec_tutorial

Buradan spec adında başka bir dizin oluşturacağız, bunu yazarak yapacağız -

mkdir spec

RSpec dosyalarımızı bu klasörde saklayacağız. RSpec dosyaları, "özellikler" olarak bilinir. Bu size kafa karıştırıcı geliyorsa, bir spec dosyasını bir test dosyası olarak düşünebilirsiniz. RSpec, "spesifikasyon" için kısa bir form olan "spesifikasyon" terimini kullanır.

RSpec bir BDD test aracı olduğundan, amaç uygulamanın ne yaptığına ve bir spesifikasyona uyup uymadığına odaklanmaktır. Davranış odaklı geliştirmede, spesifikasyon genellikle bir "Kullanıcı Hikayesi" olarak tanımlanır. RSpec, hedef kodun doğru bir şekilde, diğer bir deyişle spesifikasyonu takip edip etmediğini netleştirmek için tasarlanmıştır.

Merhaba Dünya kodumuza dönelim. Bir metin düzenleyici açın ve aşağıdaki kodu ekleyin -

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

Ardından, bunu yukarıda oluşturduğunuz özellikler klasöründeki hello_world_spec.rb adlı bir dosyaya kaydedin. Şimdi cmd.exe pencerenize geri dönün, bu komutu çalıştırın -

rspec spec spec\hello_world_spec.rb

Komut tamamlandığında, şuna benzer bir çıktı görmelisiniz -

Finished in 0.002 seconds (files took 0.11101 seconds to load) 
1 example, 0 failures

Tebrikler, ilk RSpec birim testinizi oluşturdunuz ve çalıştırdınız!

Sonraki bölümde, RSpec dosyalarının sözdizimini tartışmaya devam edeceğiz.