2012-09-15 10 views
10

के साथ मौजूद है I lib/pdf_helper.rb का परीक्षण कर रहा हूं। तो मैं spec/lib निर्देशिका बनाते हैं। फिर मैं spec/lib निर्देशिका में pdf_helper_spec.rb फ़ाइल बनाता हूं। जैसा कि मैं परीक्षण कर रहा हूं कि पीडीएफ फ़ोल्डर सार्वजनिक फ़ोल्डर में होना चाहिए और यहां मेरा कोडपरीक्षण निर्देशिका रुपेक

require 'spec_helper' 
require 'pdf_helper' 

    describe "Pdfhelpers" do 
     it "Should be in public folder" do 
     file = File.new ("#{Rails.root}/public/pdf") 
     if File.exist?(file) == 'true' 
      puts "Success" 
     else 
      puts"failed" 
     end 


    end 
    end 

क्या मैं सही हूँ ?? मैं आरएसपीसी पर नया हूँ।

+0

दस्तावेज़ीकरण की जांच करना न भूलें: http://ruby-doc.org/core-2.2.0/File.html – Tass

उत्तर

4

यदि आप जानना चाहते हैं कि कोई फ़ाइल निर्देशिका है या नहीं, तो आप File.directory? फ़ंक्शन का उपयोग कर सकते हैं।

19
expect(File).not_to exist("#{Rails.root}/public/pdf") 

दोनों फाइलों और फ़ोल्डरों के लिए काम करेगा।

2

अपने आप को इस शोध, और यहाँ मैं क्या पाया है:

File.directory?("#{Rails.root}/public/pdf").should be true 
+0

'उम्मीद (फ़ाइल)। Be_directory (" ... ")' बेहतर आईएमओ – Trejkaz

+2

पढ़ता है अमर बिग लेबोव्स्की के शब्दों में, "हाँ, अच्छा ... यह ठीक है ... आपकी राय, आदमी।" ;-) – Tass

0
expect(File.directory?("#{Rails.root}/public/pdf")).to be true 
1

पथ नाम भी पता चला है बात की इस तरह के लिए काफी पठनीय होने के लिए।

RSpec::Matchers.define :be_a_directory do 
    match do |dir_path| 
    Dir.exist?(dir_path) 
    end 
end 

आप करेंगे बाद में:

photo_path = photo.path 
expect { File.open(photo_path) }.to_not raise_error(Errno::ENOENT) 
photo.destroy! 
expect { File.open(photo_path) }.to raise_error(Errno::ENOENT) 

यह भी निर्देशिका

0

मैं इस तरह कुछ करने के लिए पसंद करते हैं इस तरह इसका उपयोग करने में सक्षम हो (उदाहरण के लिए):

describe "#{Rails.root}/public/pdf" do 
    subject { "#{Rails.root}/public/pdf" } 
    it { is_expected.to be_a_directory } 
end 
0

इस मिलान परिभाषा कहीं उचित रखो के लिए काम करेंगे:

require 'pathname' 

# ... 

expect(Pathname.new('file.txt')).to exist 
expect(Pathname.new('file.txt')).to be_file 
expect(Pathname.new('dir')).to be_directory 
संबंधित मुद्दे