2015-02-12 12 views
14

मैंने एक नया रेल एप्लिकेशन बनाया और यहां आरएसपीईसी-रेल के लिए इंस्टॉलेशन निर्देशों का पालन किया - https://github.com/rspec/rspec-rails मैंने फिर मेरे ऐप/lib निर्देशिका में निम्न मॉड्यूल (इंटरवेब्स से कॉपी किया) बनाया।अनियमित स्थिर रुपेक

require 'openssl' 
require 'base64' 

module Cipher 
    def self.encrypt(key, data) 
    data += 'A' # Add 'A' suffix to support empty data 
    cipher(:encrypt, key, data) 
    end 

    def self.decrypt(key, text) 
    data = cipher(:decrypt, key, text) 
    data[0...-1] # Remove the 'A' suffix 
    end 

    def self.encrypt_base64(key, data) 
    blowfish_string = self.encrypt(key, data) 
    Base64.encode64(blowfish_string) 
    end 

    def self.decrypt_base64(key, base64_string) 
    blowfish_string = Base64.decode64(base64_string) 
    self.decrypt(key, blowfish_string) 
    end 

    private 

    def self.cipher(mode, key, data) 
    cipher = OpenSSL::Cipher::Cipher.new('bf-cbc').send(mode) 
    cipher.key = Digest::SHA256.digest(key) 
    cipher.update(data) << cipher.final 
    end 
end 

फिर मैंने निम्नलिखित spec फ़ाइल बनाई।

require 'rails_helper' 

Rspec.describe Ciper do 

    describe "cipher encrypts data" do 
    let(:key) { 'secret key' } 

    it "encrypts a string" do 
     original = '' 
     encrypted = Cipher.encrypt(key, original) 
     decrypted = Cipher.decrypt(key, encrypted) 
     expect(decrypted).to equal original 
    end 
    end 

end 

जब मैं कल्पना मैं निम्न त्रुटि

/Users/user/RubymineProjects/skeleton/spec/lib/cipher_spec.rb:3:in `<top (required)>': uninitialized constant Rspec (NameError) 
    from /Users/user/.rvm/gems/ruby-2.2.0/gems/rspec-core-3.2.0/lib/rspec/core/configuration.rb:1226:in `load' 
    from /Users/user/.rvm/gems/ruby-2.2.0/gems/rspec-core-3.2.0/lib/rspec/core/configuration.rb:1226:in `block in load_spec_files' 
    from /Users/user/.rvm/gems/ruby-2.2.0/gems/rspec-core-3.2.0/lib/rspec/core/configuration.rb:1224:in `each' 
    from /Users/user/.rvm/gems/ruby-2.2.0/gems/rspec-core-3.2.0/lib/rspec/core/configuration.rb:1224:in `load_spec_files' 
    from /Users/user/.rvm/gems/ruby-2.2.0/gems/rspec-core-3.2.0/lib/rspec/core/runner.rb:97:in `setup' 
    from /Users/user/.rvm/gems/ruby-2.2.0/gems/rspec-core-3.2.0/lib/rspec/core/runner.rb:85:in `run' 
    from /Users/user/.rvm/gems/ruby-2.2.0/gems/rspec-core-3.2.0/lib/rspec/core/runner.rb:70:in `run' 
    from /Users/user/.rvm/gems/ruby-2.2.0/gems/rspec-core-3.2.0/lib/rspec/core/runner.rb:38:in `invoke' 
    from /Users/user/.rvm/gems/ruby-2.2.0/gems/rspec-core-3.2.0/exe/rspec:4:in `<top (required)>' 
    from /Users/user/.rvm/gems/ruby-2.2.0/bin/rspec:23:in `load' 
    from /Users/user/.rvm/gems/ruby-2.2.0/bin/rspec:23:in `<top (required)>' 
    from -e:1:in `load' 
    from -e:1:in `<main>' 

Process finished with exit code 1 
Empty test suite. 

मिल चलाने का प्रयास मुझे यकीन है कि मैं गलत यहाँ क्या कर रहा हूँ नहीं हूँ। क्या कोई भी कोशिश कर सकता है कि मैं क्या कोशिश कर सकता हूं? धन्यवाद!

उत्तर

36
त्रुटि से

:

uninitialized constant Rspec (NameError) 

अपने सिफर कल्पना में, आप Rspec रूप RSpec गलत वर्तनी है। रूबी पहचानकर्ता केस-संवेदी हैं, और आपने Rspec परिभाषित नहीं किया है, इसलिए त्रुटि।

+3

ओह गीज़, मुझे विश्वास नहीं है कि मुझे याद आया। धन्यवाद! –

+0

@geoffswartz - यह ठीक है ... बस * बिल्कुल * एक ही चीज़;) – Nick

संबंधित मुद्दे