在ruby中的rspec获取nomethoderror的Dictionary方法

时间:2014-10-13 17:43:10

标签: ruby rspec

以下是我尝试在Ruby程序中实现的两种方法,用于传递传递给它的rspec。

它是更大的类词典

的一部分

我已经为这个程序处理了大约12个其他规格,但是当它达到以下rspec时仍然会出错:不可否认,我可能遇到的部分问题是当我尝试过时运行这些,我不断收到错误,应该用"期待"重写"答案"我改写的方式可能不正确:

it 'can produce printable output like so: [keyword] "definition"' do
    @d.add('zebra' => 'African land animal with stripes')
    @d.add('fish' => 'aquatic animal')
    @d.add('apple' => 'fruit')
    expect(@d.printable).to eql(%Q{[apple] "fruit"\n[fish] "aquatic animal"\n[zebra] "African land animal with stripes"})

class Dictionary
  # TODO: your code goes here!
  attr_accessor :word, :define, :words

  def initialize
    @d = Hash.new(0)
  end

  def entries
    @d
  end

  def keywords
    @d.keys.sort
  end  

  def printable
    opts_sorted = @d.sort_by { |word, defin| word}
    opts_sorted.map{ |word, defin| "[#{word}] \"#{defin}\"\n" }.join
   end

当我尝试它时屏幕上的输出似乎是正确的,但我不断收到以下错误 1)字典可以产生如下的可打印输出:[keyword]" value"每一个都在新的一行

失败/错误:****来自上面的rspec的期望行 NoMethodError: 未定义的方法"可打印" for#(字典:(某些数字) .spec / 11_dictionary_spec.rb:81 in' block(2个级别)in

如果可以提供帮助,请提前致谢

0 个答案:

没有答案