Как создать тесты RSpec для следующего кода

Это чистое решение для JavaScript без каких-либо библиотек или плагинов:

document.addEventListener('click', function (e) {
    if (hasClass(e.target, 'bu')) {
        // .bu clicked
        // Do your thing
    } else if (hasClass(e.target, 'test')) {
        // .test clicked
        // Do your other thing
    }
}, false);

, где hasClass -

function hasClass(elem, className) {
    return elem.className.split(' ').indexOf(className) > -1;
}

Live demo

Кредит относится к Dave и Sime Vidas

Использование более современных JS, hasClass может быть реализовано как:

function hasClass(elem, className) {
    return elem.classList.contains(className);
}

0
задан AJ.N 28 March 2019 в 02:01
поделиться

1 ответ

RSpec.describe MoviesController, type: :controller do
 it 'should get all movies in the database' do
    get :index
    expect(response).to render_template :index
    expect(assigns[:movies]).to eq(Movie.all)
 end

 it 'should update movie in the database' do
   Factory.girl.create(:movie)
   before_movie_count = Movie.count

   put :update, id: movie.id

   expect(assigns[:movies]).to eq(...) # whatever data is passed

   expect(Movie.count).to eq(before_ml_count)
   expect(flash[:snack_class]).to eq(:notice.to_s)
   expect(flash[:snack_message]).to ends_with('was successfully updated')
   expect(response).to have_http_status(:redirect)
 end

 it 'should delete movie in the database' do
    Factory.girl.create(:movie)
    before_movie_count = Movie.count

    delete :update, id: movie.id

    expect(Movie.count).to eq(before_ml_count - 1)
    expect(flash[:snack_class]).to eq(:notice.to_s)
    expect(flash[:snack_message]).to ends_with('deleted')
    expect(response).to have_http_status(:redirect)
 end

 describe 'find_with_same_director' do
   it 'should call the find_with_same_director model method' do
     expect(Movie).to receive(:find_with_same_director).with(no_args)
     get :find_with_same_director, id: movie.id
   end
 end
end


#### in factory movie.rb

FactoryGirl.define do
  factory :movie do
    # assign data to movie attributes here.
  end
end
0
ответ дан Srinidhi Gs 28 March 2019 в 02:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: