Rspec的代碼是一流的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 calls calculate_word_frequency when created Failure/Error: DEFAULT_FAILURE_NOTIFIER = lambda { |failure, _opts| raise failure } Exactly one instance should have received the following message(s) but didn't: calculate_word_frequency
我如何解決這個error.How我通過這個測試?
這不是一個錯誤,這是一個失敗的測試,這是RSpec的一個完全正常的部分。 – meagar
我如何通過它.. –
修復您的代碼或您的規範。根據你的規範,應該在初始化期間調用'calculate_work_frequency'。無論這是否是正確的行爲 - 我們不知道。 –