Saya baru dalam pengujian RSpec dan saat ini mencoba menambahkan tes ke pengontrol yang ada untuk aplikasi Rails 4. Berikut ini tautan aplikasi Github, jika Anda memerlukan detail lebih lanjut: https://github.com/iacobson/Zero2Dev sebuah>
resource_controller.rb
class ResourcesController < ApplicationController
before_action :authenticate_user!, only:[:new, :create, :destroy]
def destroy
@resource = current_user.resources.find(params[:id])
@resource.destroy
redirect_to resources_path
end
private
def resource_params
params.require(:resource).permit(:content, :user_id)
end
end
resources_controller_spec.rb
require 'rails_helper'
RSpec.describe ResourcesController, type: :controller do
describe "DELETE #destroy" do
let(:user1) {User.create!(name:"John", email:"[email protected]", password:"password")}
let(:user2) {User.create!(name:"Mary", email:"[email protected]", password:"password")}
let(:resource){user1.resources.create!(content: "Neque porro quisquam est qui dolorem ipsum")}
it "deletes resource when user 1 (that created the resource) is logged-in" do
sign_in user1
delete :destroy, id: resource.id
puts resource.content
expect(resource.content).to be_nil
end
end
end
tapi sepertinya "sumber daya" tidak pernah dihapus:
Failure/Error: expect(resource.content).to be_nil
expected: nil
got: "Neque porro quisquam est qui dolorem ipsum"
Saya mencoba banyak pilihan lain dari tutorial Rancangan atau dari tutorial atau jawaban lain yang saya temukan di internet, tetapi semuanya berakhir dengan kesalahan. Saya bahkan mencoba menghilangkan validasi pengguna_saat ini dari pengontrol, tetapi tidak ada peluang.
Apa cara yang benar untuk menguji tindakan Hancurkan di pengontrol, menggunakan Rails4, Rancangan, dan Rspec
Terima kasih !