Oto mój test. Błąd, który dostaję, to ActiveRecord :: RecordNotFound: Nie można znaleźć programu MedicalStudentProfile z parametrem "id" = 1001. Czy używam build_stubbed poprawnie?FactoryGirl build_stubbed & RSpec - Generuje identyfikator, ale nie odnajduje id podczas testowania Pokaż działanie
RSpec test
RSpec.describe MedicalStudentProfilesController, type: :controller do
let!(:profile){build_stubbed(:medical_student_profile)}
let!(:user){build_stubbed(:user)}
describe 'GET show' do
it 'should show the requested object' do
sign_in user
get :show, id: profile.id
expect(assigns(:profile)).to eq profile
end
end
end
Controller
def show
@profile = MedicalStudentProfile.find params[:id]
end
Dzięki. Sprawdziłem w build_stubbed, aby przyspieszyć testy kontrolerów, ale wydaje się, że nie ma tu zastosowania. –
Możesz sfałszować lub przeszukać metodę find klasy MedicalStudentProfile, aby uniknąć uderzenia bazy danych. W ten sposób używasz makiet, aby określić zachowanie kontrolera zamiast oczekiwać wyniku bazy danych. Zdecydowanie polecam [Receptury testowe Rails 4] (http://www.amazon.com/Rails-Test-Prescriptions-Healthy-Codebase/dp/1941222196/ref=sr_1_1?s=books&ie=UTF8&qid=1437766269&sr=1- 1 & słowa kluczowe = tory + 4 + test + recepty) zarezerwuj, jeśli chcesz dowiedzieć się więcej na ten temat. – izaban
Widzę, jak kpina z DB jest dobra dla wydajności testu, ale czy tego rodzaju porażka nie jest celem testu integracyjnego? – max