игра брюс 2048
Главная / Интернет-технологии / Разработка приложений на Ruby on Rails / Тест 10

Разработка приложений на Ruby on Rails - тест 10

Упражнение 1:
Номер 1
Терминальная команда rm нужна для:

$ rm -f spec/factories/microposts.rb

Ответ:

 (1) Создания файла 

 (2) Переименования файла 

 (3) Перемещения файла 

 (4) Удаления файла 


Номер 2
add_index :cats, [:names, :created_at]
Данная строка:

Ответ:

 (1) Создает индексы на поля names и created_at 

 (2) Создает составной индекс на поля names и created_at 

 (3) Добавляет индексированные поля names и created_at к таблице cats 

 (4) Создает индексированную таблицу cats с полями names и created_at 


Упражнение 2:
Номер 1
validates :user_id, presence: true
presence нужен для:

Ответ:

 (1) создания ключа 

 (2) создания индекса 

 (3) требования обязательного заполнения 

 (4) указания стандартного значения 


Номер 2
class Table < ActiveRecord::Base
 ... :room
end
Вместо многоточия введите метод для связи, который говорит о том, что стол связан с одной комнатой

Ответ:

 belongs_to 


Номер 3

  class Table < ActiveRecord::Base
 ... :room
end
Вместо многоточия введите метод для связи, который говорит о том, что комната связана со многими столами:

Ответ:

 has_many 


Упражнение 3:
Номер 1
Как известно, в комнате может стоять несколько столов, но стол стоит в одной комнате. Соотнесите методы и их действия:

Ответ:

table.room hвозвращает объект-комнату, связанный с данным столом
room.tables возвращает массив столов в комнате
room.tables.create(arg) создает стол, привязанный к комнате
room.tables.create!(arg) создает стол, привязанный к комнате и бросает исключение в случае неудачи
room.tables.build(arg) возвращает новый объект-стол

Номер 2
Возможно ли установить значение поля created_at при сохранении записи в базе данных с помощью ActiveRecord?

Ответ:

 (1) Да 

 (2) Нет 


Номер 3
Сохранится ли в базе данных пользовательское значение поля created_at у сгенерированного экземпляра класса с помощью Factory Girl?

Ответ:

 (1) Да 

 (2) Нет 


Упражнение 4:
Номер 1
Метод let! используется для:

Ответ:

 (1) Выброса исключения при ошибке инициализации переменной 

 (2) Немедленной инициализации переменной 

 (3) Ленивой инициализации переменной 

 (4) Для применения действия переменной к самой себе 


Номер 2
Метод let является ленивым, это значит:

Ответ:

 (1) Переменная инициализируется только при первом обращении 

 (2) Переменная инициализируется слишком долго 

 (3) Никогда не будет выброшено исключений 

 (4) Покрытие тестами составляет менее 50% 


Номер 3
default_scope используется для

Ответ:

 (1) задания стандартного поведения таблицы в базе данных 

 (2) указания того, какая таблица будет использована в качестве стандартной 

 (3) изменения стандартных настроек хеширования 

 (4) управления нагрузкой 


Упражнение 5:
Номер 1
order('created_at ...')
Ввелите ключевое слово, для указания сортировки по возрастанию (в нижнем регистре):

Ответ:

 desc 


Номер 2
order('created_at ...')
Ввелите ключевое слово, для указания сортировки по убыванию (в нижнем регистре):

Ответ:

 asc 


Номер 3
lambda - это:

Ответ:

 (1) Метод, который выполняется моментально 

 (2) метод, оценивающийся в момент вызова 

 (3) Метод, выполняемый в фоновом потоке 

 (4) Зеленый поток 


Упражнение 6:
Номер 1

  class Room < ActiveRecord::Base
 has_many :tables, dependent: :destroy
end
Данный код говорит о том, что:

Ответ:

 (1) При удалении записи в таблице Rooms, все связанные с этой комнатой столы будут так же удалены из таблицы Tables 

 (2) При уничтожении записи в таблице Tables, связанная комната будет удалена из таблицы Rooms 

 (3) Пока есть столы, связанные с комнатой, удалить данную комнату из таблицы Rooms нельзя 

 (4) Пока есть комната, связанная с определенным столом, удалить данный стол из таблицы Tables нельзя 


Номер 2

  expect do
  Table.find(table)
end.to raise_error(ActiveRecord::RecordNotFound)
Данный код нацелен на:

Ответ:

 (1) Поиск по таблице столов 

 (2) Выброс исключения 

 (3) Тест на выброс исключения во время поиска 

 (4) Перехват исключения 


Номер 3
Метод be_empty в RSpec

it "should destroy associated microposts" do
 microposts = @user.microposts.to_a
 expect(microposts).to ...
end
Введите ключевое слово, которое тестирует массив на нулевой размер:

Ответ:

 be_empty 


Упражнение 7:
Номер 1
"a" * 10
Код вернет:

Ответ:

 (1) 970 

 (2) а10 

 (3) 10a 

 (4) аааааааааа 

 (5) Будет выброшено исключение 


Номер 2
user.microposts.count:

Ответ:

 (1) Получает количество записей напрямую из базы данных 

 (2) Получает количество записей из специального файла 

 (3) Получает все записи из базы данных и определяет их количество локально 


Номер 3

<%= will_paginate @dogs %>
<%= will_paginate %>
В контексте контроллера Dogs данные строки:

Ответ:

 (1) Являются синонимами 

 (2) синонимами не являются и использование верхней строки приведет к ошибке 

 (3) синонимами не являются и использование нижней строки приведет к ошибке 


Упражнение 8:
Номер 1

<%= will_paginate @dogs %>
<%= will_paginate %>
В контексте контроллера Cats данные строки:

Ответ:

 (1) Являются синонимами 

 (2) Синонимами не являются и использование верхней строки приведет к ошибке 

 (3) Синонимами не являются и использование нижней строки приведет к ошибке 


Номер 2

<%= render @dogs %>
Данная строка:

Ответ:

 (1) Итеративно выводит все данные из @dogs на страницу 

 (2) Рендерит частичный шаблон _dog.html.erb 

 (3) Выводит размер массива @dogs 

 (4) Создает итератор для доступа к массиву @dogs 


Упражнение 9:
Номер 1
SQL инъекция это:

Ответ:

 (1) Внедрение поддержки базы данных в приложение 

 (2) Вид SQL запроса 

 (3) Вывод результата SQL запроса на страницу 

 (4) Вид атаки на приложение 


Номер 2
Более безопасным поиск по базе данных считается:

Ответ:

 (1) Путем изолированных обращений к каждой таблице 

 (2) Через связи 

 (3) С помощью ассоциаций 

 (4) С подтвердением по паролю 




Главная / Интернет-технологии / Разработка приложений на Ruby on Rails / Тест 10