LU Lua  ·  20 вопросов  ·  ~55 мин  ·  ⏱ Таймер 55:00  ·  Лёгкий  · 

Строки и шаблоны Lua

Тест по теме «Строки и шаблоны Lua» проверяет чтение кода, поиск скрытых допущений и выбор решения для обычных и граничных сценариев. В нём 20 вопросов, из них 10 содержат фрагменты Lua. Условия отдельно отмечают случаи, зависящие от версии языка или внешней библиотеки.

Отвечено: 0 из 20
⏱ --:--
0%
💡 Инструкция: В каждом вопросе выберите один ответ из пяти. На работу отведено 55 минут. После завершения можно посмотреть правильные ответы, объяснения и результат по каждой теме.
Вопрос 1 из 20
Какая семантическая деталь определяет поведение фрагмента? Ответ должен описывать основной механизм раздела «Строковая библиотека».
LuaLua · Строковая библиотека · разбор 1
local s = "lua"
local upper = string.upper(s)
print(s, upper, s == upper)
Вопрос 2 из 20
Какую границу стоит сделать явной в регрессионной проверке? Нужен отрицательный сценарий для раздела «Строковая библиотека».
LuaLua · Строковая библиотека · разбор 2
local function reproduce_case()
  local s = "lua"
  local upper = string.upper(s)
  print(s, upper, s == upper)
end
reproduce_case()
Вопрос 3 из 20
После рефакторинга тесты должны защищать одно правило. Какое? Нужен основной контракт раздела «Строковая библиотека».
LuaLua · Строковая библиотека · разбор 3
do
  local s = "lua"
  local upper = string.upper(s)
  print(s, upper, s == upper)
end
Вопрос 4 из 20
Код по разделу «Строковая библиотека» уходит в эксплуатацию. Какое ограничение нельзя прятать внутри реализации? Нужна эксплуатационная граница раздела «Строковая библиотека».
Вопрос 5 из 20
На какое утверждение можно опереться при проектировании раздела «Строковая библиотека»? Ответ должен охватывать весь раздел «Строковая библиотека».
Вопрос 6 из 20
Какое правило точнее всего описывает происходящее в строке «for id in text:gmatch("id=(%d+)") do print(id) end»? Нужна именно центральная гарантия раздела «Шаблоны Lua».
LuaLua · Шаблоны Lua · разбор 1
local text = "id=42; id=105"
for id in text:gmatch("id=(%d+)") do print(id) end
Вопрос 7 из 20
Обычный запуск проходит. Какое граничное поведение обязан проверить второй тест? Ищется граничное следствие правила из раздела «Шаблоны Lua».
LuaLua · Шаблоны Lua · разбор 2
local function reproduce_case()
  local text = "id=42; id=105"
  for id in text:gmatch("id=(%d+)") do print(id) end
end
reproduce_case()
Вопрос 8 из 20
После рефакторинга тесты должны защищать одно правило. Какое? Нужен основной контракт раздела «Шаблоны Lua».
LuaLua · Шаблоны Lua · разбор 3
do
  local text = "id=42; id=105"
  for id in text:gmatch("id=(%d+)") do print(id) end
end
Вопрос 9 из 20
Код по разделу «Шаблоны Lua» уходит в эксплуатацию. Какое ограничение нельзя прятать внутри реализации? Выберите практическое следствие раздела «Шаблоны Lua».
Вопрос 10 из 20
На какое утверждение можно опереться при проектировании раздела «Шаблоны Lua»? Ответ должен охватывать весь раздел «Шаблоны Lua».
Вопрос 11 из 20
Какое правило Lua нужно применить, чтобы верно прочитать этот фрагмент? Нужна именно центральная гарантия раздела «Захваты».
LuaLua · Захваты · разбор 1
local name, pos = ("user:oleg"):match("^(%a+):()")
print(name, pos)
Вопрос 12 из 20
Что следует изменить во входе, чтобы проверить скрытое ограничение? Нужен отрицательный сценарий для раздела «Захваты».
LuaLua · Захваты · разбор 2
local function reproduce_case()
  local name, pos = ("user:oleg"):match("^(%a+):()")
  print(name, pos)
end
reproduce_case()
Вопрос 13 из 20
После рефакторинга тесты должны защищать одно правило. Какое? Выберите гарантию, определяющую раздел «Захваты».
Вопрос 14 из 20
В модуле меняют «Захваты» и хотят сохранить диагностируемость. Какой подход надёжнее? Ответ должен выражать проверяемое следствие раздела «Захваты».
Вопрос 15 из 20
Какое утверждение о разделе «Захваты» точно и не обещает лишнего? Ответ должен охватывать весь раздел «Захваты».
Вопрос 16 из 20
Почему этот фрагмент ведёт себя именно так? Выберите основное правило раздела «Форматирование».
LuaLua · Форматирование · разбор 1
local user = "a'b"
local sql = string.format("SELECT * FROM t WHERE name='%s'", user)
print(sql)
Вопрос 17 из 20
Обычный запуск проходит. Какое граничное поведение обязан проверить второй тест? Нужен отрицательный сценарий для раздела «Форматирование».
LuaLua · Форматирование · разбор 2
local function reproduce_case()
  local user = "a'b"
  local sql = string.format("SELECT * FROM t WHERE name='%s'", user)
  print(sql)
end
reproduce_case()
Вопрос 18 из 20
Какое требование стоит закрепить тестом до начала рефакторинга? Нужен основной контракт раздела «Форматирование».
Вопрос 19 из 20
Для раздела «Форматирование» выбирают между коротким трюком и ясным контрактом. Что предпочтительнее? Выберите практическое следствие раздела «Форматирование».
Вопрос 20 из 20
Что должен помнить разработчик, впервые работающий с разделом «Форматирование»? Выберите описание, объединяющее механизм и границу раздела «Форматирование».

Ответьте на все 20 вопросов, чтобы получить результат

🔗 Встроить тест на свой сайт (iframe) ▼

Скопируйте код и вставьте в любое место на вашем сайте:

Также доступна прямая ссылка на embed-страницу