2012-04-10 6 views
1

Ich versuche Rspec eine Suchfunktion zu testen,
das ist, was ich bisher,, wie Sie testen Suche Konzept in rspec

def product_search 
    filter = "" 
    filter = filter + " and B.sku like '#{params[:sku]}%'" if params[:sku] && params[:sku] != "" 
    filter = filter + " and A.name like '#{params[:name]}%'" if params[:name] && params[:name] != "" 
    filter = filter + " and D.name like '#{params[:store_name]}%'" if params[:store_name] && params[:store_name] != "" 
    if params[:approved] == "0" 
     filter= filter + "and (A.is_approved = false And A.approved_by is NULL) " 
    elsif params[:approved] == "1" 
     filter= filter + "and A.is_approved = true " 
    elsif params[:approved] == "2" 
     filter= filter + " and (A.is_approved = false And A.approved_by is NOT NULL) " 
    end 
    @products=Product.seller_product_search(filter,current_user.store.id).paginate(:page => params[:page], :per_page => 10) 
    respond_to do |format| 
    format.html 
    format.js 
    end 
end 

Wie soll ich rspec für diesen Code schreiben?

Antwort

1

Ich würde die gesamte Suchlogik in das Produktmodell einfügen und den params-Hash an diesen übergeben.

Dann würde ich eine Methode erstellen, um dies in der Modellspezifikation zu testen. Das sollte ziemlich geradlinig sein.

Was ist das Problem, das Sie erleben?

+0

Ich weiß nicht, wie man – Swathi

+0

testen, wenn dies Ihr Problem ist, dann werfen Sie einen Blick auf all diese Ressourcen im Internet verfügbar: http://railscasts.com/?tag_id=7 http://guides.rubyonrails.org /testing.html etc ... – phoet

+0

hey @phoet Ich habe etwas Arbeit wie Sie in der Antwort gesagt, und jetzt verwirrt, um den Test zu starten, können Sie bitte haben, dass Test, den Sie jemals tippen? – Awais