我正在将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
方法,因此我在运行测试时不断获得NoMethodError
。 to_json
方法似乎来自activeresource
(https://github.com/rails/activeresource)。我现在如何使用to_json
方法扩充哈希值?
谢谢。
答案 0 :(得分:1)
当您遇到NoMethodError
时,则表示您没有加载所需的库。在您需要使用方法require 'json'
的测试用例中添加 to_json
。
在评论中回答您的问题:
你知道找出这些方法实际来自何处的方法吗?我正在使用RubyMine来查找它,它给了我完整的可能实现列表
真的,当你在寻找不为你所知的功能时,搜索引擎会拯救你。可能不是一个吸引人的答案,但这就是我的学习方法:)在写这个答案时,我做了this search on Google,第一个结果就是你问题的答案。