rspec:使用rails中的to_json方法扩充哈希

时间:2013-12-11 07:16:47

标签: ruby-on-rails ruby rspec ruby-on-rails-3.2 rspec-rails

我正在将rails codebase上的ruby的一部分重构为ruby gem。作为整个过程的一部分,我必须将一些测试用例转移到gem。

其中一项测试:

describe A::B do
  describe "#someMethod" do
    let(:user_hash) { {'id' => 3, "username" => "user", "email" => "email@some.domain"} }
      it "return the base64 message" do
        described_class.message(user_hash).should ==
          Base64.encode64(user_hash.to_json).gsub("\n", "")
      end

问题是,普通哈希没有to_json方法,因此我在运行测试时不断获得NoMethodErrorto_json方法似乎来自activeresourcehttps://github.com/rails/activeresource)。我现在如何使用to_json方法扩充哈希值?

谢谢。

1 个答案:

答案 0 :(得分:1)

当您遇到NoMethodError时,则表示您没有加载所需的库。在您需要使用方法require 'json'的测试用例中添加 to_json

在评论中回答您的问题:

  

你知道找出这些方法实际来自何处的方法吗?我正在使用RubyMine来查找它,它给了我完整的可能实现列表

真的,当你在寻找不为你所知的功能时,搜索引擎会拯救你。可能不是一个吸引人的答案,但这就是我的学习方法:)在写这个答案时,我做了this search on Google,第一个结果就是你问题的答案。