5
首先,我在模擬/存根新的,和我有麻煩嘲諷/磕碰麻煩,用嘲諷的數據庫和存根:保存
這是我的應用程序代碼:
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
和:
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
我想做一個模擬的ActiveRecord,測試'創造',而不需要測試'得到'。 這裏的想法是當我調用'user.save'可以保存用戶而不使用數據庫,然後我會在我的測試用例中訪問,所以我保證用戶被'插入'我的數據庫。
如果我運行我的測試,它會通過,但我沒有驗證我願意做什麼。任何幫助或想法?
謝謝!
什麼是'User.new(VALID_USERNAME,VALID_PASSWORD)'?您的自定義方法是「新」方法嗎?如果是,它會返回什麼?請注意,來自ActiveRecord的['new'](http://api.rubyonrails.org/classes/ActiveModel/Model.html#method-c-new)接受hash – gotva