這裏是我的控制器:Rcov:爲什麼這個代碼沒有被考慮覆蓋?
class MyController < ApplicationController
include MyHelper
def index
get_list_from_params do |list|
@list = list
respond_to do |format|
format.html
format.xml { render :xml => @list }
format.json { render :json => @list }
end
end
end
end
...,它是基於助手:
module MyHelper
def get_list_from_params(param = :id, &on_success)
raw_id = params[param]
begin
id = Integer(raw_id)
rescue
render :template => "invalid_id", :locals => {:id => raw_id }
else
yield MyList.new(id)
end
end
end
...和我的功能測試(這是使用早該):
class MyControllerTest < ActionController::TestCase
context "MyController index" do
setup do
get :index
end
should_respond_with :success
end
end
編輯我的rcov rake與官方FAQ中列出的完全一樣:eigenclass.org
RCov(0.9.7.1)列出了控制器中的所有行,直到「def index」爲綠色,之後的每一行(包括所有的「end」)都顯示爲紅色/未執行。我知道,當我的測試實際執行時,它會成功執行代碼。
爲什麼RCov會給出不直觀的結果?有什麼我在這裏失蹤?
你的rcov Rake任務是什麼樣的?它是默認的嗎? – BaroqueBobcat 2010-02-08 04:38:06