2011-07-02 29 views
1

我使用的是得到一個子類無效錯誤以下EXEC自動測試或捆綁的exec rspec的投機/):「物以稀爲貴」我打電話YAML.load_file

require 'spec_helper' 
require 'yaml' 

def twitter_feed(id=1) 
    ruby_object = YAML.load_file(::Rails.root.to_s + "/spec/fixtures/feeds/twitter_response_#{id}.yml") 
end 

我得到這個:

Failure/Error: ruby_object = YAML.load_file(::Rails.root.to_s + "/spec/fixtures/feeds/twitter_response_#{id}.yml") 
    TypeError: 
     invalid subclass 
     # ./spec/models/tweet_spec.rb:6:in `twitter_feed' 
     # /Users/natebean/.rvm/rubies/ruby-1.8.7-p302/lib/ruby/1.8/yaml.rb:133:in `transfer' 
     # /Users/natebean/.rvm/rubies/ruby-1.8.7-p302/lib/ruby/1.8/yaml.rb:133:in `node_import' 
     # /Users/natebean/.rvm/rubies/ruby-1.8.7-p302/lib/ruby/1.8/yaml.rb:133:in `load' 
     # /Users/natebean/.rvm/rubies/ruby-1.8.7-p302/lib/ruby/1.8/yaml.rb:133:in `load' 
     # /Users/natebean/.rvm/rubies/ruby-1.8.7-p302/lib/ruby/1.8/yaml.rb:144:in `load_file' 
     # /Users/natebean/.rvm/rubies/ruby-1.8.7-p302/lib/ruby/1.8/yaml.rb:143:in `open' 
     # /Users/natebean/.rvm/rubies/ruby-1.8.7-p302/lib/ruby/1.8/yaml.rb:143:in `load_file' 
     # ./spec/models/tweet_spec.rb:5:in `twitter_feed' 
     # ./spec/models/tweet_spec.rb:58 

這個 「被」 工作。我無法在互聯網上找到有關此錯誤的任何其他信息。我已經從rails 3.0.3移到了3.0.7,但是不記得它在升級後無法工作。

有什麼建議嗎?謝謝。

+0

什麼是YAML文件的樣子?我希望你序列化一個對象,可能是一個模型的實例,它可以從ActiveRecord :: Base繼承,但是在你反序列化的規範中,它不知道ActiveRecord或你的模型(可能需要模型) –

+0

我希望它不是另一個Syck vs. Psych問題! –

回答

1

我正在拉的yaml文件正在尋找Hashie :: Mash來映射數據。直到知道我不需要'哈希',但是這「已經解決了這個問題」。

我加入到我的規範,它現在工作。

require 'hashie' 
0

運行bundle exec rspec spec --backtrace以獲得完整的回溯,以便您可以準確查看錯誤來自何處。

相關問題