Prima di tutto io sono nuovo in finto/stub, e sto avendo problemi beffardo/spegnendoTrouble in beffardo un database e stub: salva
Questo è il mio codice dell'applicazione:
describe 'Register an User' do
VALID_USERNAME = "..."
VALID_PASSWORD = "..."
VALID_USER = User.new(VALID_USERNAME, VALID_PASSWORD)
before (:each) do
User.any_instance.stub(:save).and_return(true)
end
it 'should create a new user' do
post :create, :username => VALID_USERNAME, :password => VALID_PASSWORD
expect(response.status).to eq(201)
#user_inserted = ...
#expect(user_inserted).to eq(VALID_USER)
end
end
e:
def create
username = params[:username]
password = params[:password]
if not username or not password
render :json => '', :status => 400
else
success = User.new(username, password).save
if success
render :json => '', :status => 201
else
render :json => '', :status => 500
end
end
end
che sto cercando di fare un mock di ActiveRecord, per testare 'creare', senza necessità di testare 'ottenere'. L'idea qui è quando chiamo 'user.save' può salvare l'utente senza usare il database, e quindi accedo al mio caso di test, così garantisco che l'utente è stato 'inserito' nel mio database.
Se eseguo il test, passa, ma non sto verificando cosa sono disposto a fare. Qualche aiuto o idea?
Grazie!
Che cos'è 'User.new (VALID_USERNAME, VALID_PASSWORD)'? Il metodo 'new' è il tuo metodo personalizzato? Se sì, cosa restituisce? Fai attenzione che ['new'] (http://api.rubyonrails.org/classes/ActiveModel/Model.html#method-c-new) di ActiveRecord accetta l'hash – gotva