Scrivere fuctional test in RoR che supportino chiamate JSON

Se avete dei controller che generano chiamate JSON, vi sarete resi conto che i test non sono in grado di analizzarne i dati.
Il problema puo’ essere ovviato usando ActiveSupport::JSON.decode sul response.body.
Per poter utilizzarlo all’interno di tutte le classi editiamo il file test/test_helper.rb ed all’interno della classe ActionController::TestCase inseriamo il seguente codice:


def json
    ActiveSupport::JSON.decode @response.body
end

A questo punto possiamo procede a scrivere il nuovo test. Supponendo che il nosto metodo index all’interno del controller si presenti come segue:

def index
    respond_to do |format|
        format.html
        format.json { render json: UserDatatable.new(view_context) }
    end
end

Affiancheremo al generico functional test:

test "should get index" do
    get :index
    assert_response :success
    assert_not_nil assigns(:user)
end

il test che copre la parte JSON come segue:

test "should get JSON index " do
    get :index , :format => :json
    assert_response :success
    assert_not_nil assigns(:user).to_json, @response.body
end

Vi invito a leggere la doc sui metodi encode e decode che trovate qui’,

RoR: Come testare una confirm dialog con Capybara

Capybara rappresenta una delle gemme indispensabili per gli integration test in Ruby on Rails.
Usandolo vi sarete accorti che sembra non esserci modo di gestire le confirm dialog javascript del vostro codice. Tuttavia, se state usando un driver come Selenium che supporti il JS, potete forzare a trueil valore ritornato dal js come segue:


page.evaluate_script('window.confirm = function() { return true; }')
page.click('Destroy')

Learn VIM

Link

Una grande raccolta di documentazione & tutorial su VIM plugin e tutto quello che serve per usarlo con Rails by thoughtbot.

Molte risorse sono a pagamento, ma vale la pena fare un giro sul sito

Learn VIM

Chi sono

Giuseppe La Rosa

IT Specialist

Milano, Italia

Follow me on:

 INFO

Mi chiamo Giuseppe La Rosa e da anni mi occupo di amministrazione di sistemi Unix. Fortemente attratto dall’informatica da quando avevo 8 anni, laureato presso l’Università di Catania, nel 2006 ho conseguito uno stage presso la New York University nel campo della Bioinformatica lavorando su algoritmi per il protein matching,
Tornato in Italia, ho ricoperto diversi ruoli dallo sviluppatore Java al system administrator. Attualmente lavoro come system engineer presso una TELCO.
Nutro interesse per tutto quello che concerne l’informatica, in particolar modo la sicurezza, i linguaggi di programmazione e tutto quello che ruota attorno al mondo Open Source

COMPETENZE

OS: Linux, Unix, HP-UX, Oracle Exadata, Solaris, AIX
Languages : Java (J2SE, J2EE, Servlet), Python, Puppet, Ruby on Rails, Shell scripting
Web languages: JSP, HTML, CSS, XML+DTD
Tools & other: HP Service Guard, Veritas Cluster, Veritas Volume Manager

 CERTIFICAZIONI

RHCA (Red Hat Certified Architect)
Red Hat Certified System Administrator in OpenStack
Platform-as-a-Service: Red Hat OpenShift Enterprise
Red Hat Server Hardening
Red Hat Performance Tuning
RHCVA (Red Hat Certified Virtualization Administrator)
RHCE (Red Hat Certified Engineer)
ITIL V3 Foundation
Ec-Council Certified Ethical Hacker v7

 INTERESESSI

 Fotografia, Ju Jitsu, Motociclismo