【发布时间】:2015-11-23 17:51:11
【问题描述】:
Rspec 代码是
it "calls calculate_word_frequency when created" do
expect_any_instance_of(LineAnalyzer).to receive(:calculate_word_frequency)
LineAnalyzer.new("", 1)
end
类的代码是
def initialize(content,line_number)
@content = content
@line_number = line_number
end
def calculate_word_frequency
h = Hash.new(0)
abc = @content.split(' ')
abc.each { |word| h[word.downcase] += 1 }
sort = h.sort_by {|_key, value| value}.reverse
puts @highest_wf_count = sort.first[1]
a = h.select{|key, hash| hash == @highest_wf_count }
puts @highest_wf_words = a.keys
end
这个测试出错了
LineAnalyzer 在创建时调用 calculate_word_frequency 失败/错误:DEFAULT_FAILURE_NOTIFIER = lambda { |failure, _opts|引发失败} 恰好一个实例应该收到以下消息但没有收到:calculate_word_frequency
如何解决此错误。如何通过此测试?
【问题讨论】:
-
这不是错误,这是测试失败,这是 RSpec 完全正常的部分。
-
修复您的代码或规范。根据您的规范,应在初始化期间调用
calculate_work_frequency。这是否是正确的行为——我们不知道。