Przede wszystkim jestem nowy w udawanym/odgałęzienie, i mam problemy z szyderczy/stubbingKłopot w wyśmianie bazy danych i niedopałek: zapisz
To jest mój kod aplikacji:
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
Oraz:
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
Próbuję zrobić próbę ActiveRecord, aby przetestować "tworzenie", bez potrzeby testowania "get". Idea jest taka, że kiedy wywołuję "user.save", można zapisać użytkownika bez korzystania z bazy danych, a następnie mam dostęp w moim przypadku testowym, więc gwarantuję, że użytkownik został "włożony" do mojej bazy danych.
Jeśli przeprowadzę test, to przejdzie, ale nie sprawdzam, co chcę zrobić. Jakaś pomoc lub pomysł?
Dzięki!
Co to jest "User.new (VALID_USERNAME, VALID_PASSWORD)"? Czy metoda 'new' jest metodą niestandardową? Jeśli tak, to co powraca? Zwróć uwagę, że ['new'] (http://api.rubyonrails.org/classes/ActiveModel/Model.html#method-c-new) z ActiveRecord akceptuje hash – gotva