Как мне нравится, когда автотесты падают на null и пробелах))) Первый раз при отладке такого теста ты вообще не понимаешь, что не так. Потом запоминаешь...
Собрала несколько любимых примеров из жизни, зацените:
Null
Допустим, должна быть пустая строка, а ты туда текстом null вписал. Тест падает:
expected «null», but was «null»
Угадай, что не так ¯\_(ツ)_/¯
Как можно так ошибиться и впечатать null? У меня был такой кейс:
Тут я тоже очень удивилась, увидев падение теста:
1: Case failed!
Expected: [3/]:AAYADH Abou
Actual: [3/]:AAYADH Abou
Потом присмотрелась к полному выводу результатов, и увидела пробелы после «Abou »:
Input data: AAYADH;Abou;;;;;;
Etalon data: AL;13130;AAYADH Abou ;;;;;;;
Result data: AL;13130;AAYADH Abou;;;;;;;;
Ок, пару раз огребла, запомнила. Когда делаешь копипасту в эксель — проверяй, что не вставил в конец лишний пробел. Видишь такую ошибку — ищи пробелы. Не нашел? Посмотри в полном выводе результатов, нагляднее будет.
А потом столкнулась с таким кейсом
Test 4: Case failed!
Expected: [1/src_external_id]:2. пустой
Actual: [1/src_external_id]:2. пустой
Может, опять пробел в конце? Стойте, они же одинаковые!
Input data: 2. пустой;AL;;;;;
Etalon data: 2. пустой;AL;;;;;
Result data: 2. пустой;AL;;;;;
Вот вообще одинаковые же, ну! В чем проблема то? Долго думала как ее исправить, потом просто скопировала значение, которое ожидает тест — все заработало!
В общем, если ставить цифру в точкой или длинное тире («2 — пустой»), то выходные данные проще скопировать с эталона от теста. Видимо, эксель видит нумерацию и ставит какой-то свой пробел, как в нумерованном списке. И он не совпадает с пробелом в CSV...
Один символ
Еще забавный пример из серии «сломай глаза, пока заметишь разницу». Если сам составляешь эталон, можешь где-то пропустить буковку. Или ты можешь все правильно написать, а эксель после точки прописную букву заглавной сделает...
И в итоге получаешь что-то такое:
Expected: [1/Исх. строка]:Harkovskay 3. korpus1. Kvartira-1 644041
Actual: [1/Исх. строка]:Harkovskay 3. korpus1. kvartira-1 644041
Нашли отличие? Оно, конечно, не так уж сложно. А если сложно, можно использовать программу типа Araxis Merge, это решит все проблемы.
Но обычно ты просто смотришь в командной строке вывод результатов прогона и пытаешься сам оценить «Оно упало, потому что я тест криво сделал или баг заводить пора?».
И если строка длинная, то разницу в одну букву заметить сложно. Привыкаешь же к быстрому чтению, окидываешь результаты взглядом — одинаковое же! Ан нет (。•́︿•̀。)
Собрала несколько любимых примеров из жизни, зацените:
Null
Допустим, должна быть пустая строка, а ты туда текстом null вписал. Тест падает:
expected «null», but was «null»
Угадай, что не так ¯\_(ツ)_/¯
Как можно так ошибиться и впечатать null? У меня был такой кейс:
- Исходные файлы в экселе — входной и выходной.
- После прогона теста система формирует собственный эталон в формате csv.
- Система сравнивает твой выходной файл и тот, что сама получила.
- Система выводит все несопавшие значения.
Системный эталон формируется автоматически и в пустые ячейки вписывает null. Так что если копируешь оттуда — не забудь потом почистить эти ячейки. Или огребешь сообщение, подобное сообщению выше.
Помню, как я в первый раз удивилась этому сообщению. Долго думала, что не так, потом обнаружила, что из одной ячейки не удалила текст «null» ¯\_(ツ)_/¯
Пробелы
Тут я тоже очень удивилась, увидев падение теста:
1: Case failed!
Expected: [3/]:AAYADH Abou
Actual: [3/]:AAYADH Abou
Потом присмотрелась к полному выводу результатов, и увидела пробелы после «Abou »:
Input data: AAYADH;Abou;;;;;;
Etalon data: AL;13130;AAYADH Abou ;;;;;;;
Result data: AL;13130;AAYADH Abou;;;;;;;;
Ок, пару раз огребла, запомнила. Когда делаешь копипасту в эксель — проверяй, что не вставил в конец лишний пробел. Видишь такую ошибку — ищи пробелы. Не нашел? Посмотри в полном выводе результатов, нагляднее будет.
А потом столкнулась с таким кейсом
Test 4: Case failed!
Expected: [1/src_external_id]:2. пустой
Actual: [1/src_external_id]:2. пустой
Может, опять пробел в конце? Стойте, они же одинаковые!
Input data: 2. пустой;AL;;;;;
Etalon data: 2. пустой;AL;;;;;
Result data: 2. пустой;AL;;;;;
Вот вообще одинаковые же, ну! В чем проблема то? Долго думала как ее исправить, потом просто скопировала значение, которое ожидает тест — все заработало!
В общем, если ставить цифру в точкой или длинное тире («2 — пустой»), то выходные данные проще скопировать с эталона от теста. Видимо, эксель видит нумерацию и ставит какой-то свой пробел, как в нумерованном списке. И он не совпадает с пробелом в CSV...
Один символ
Еще забавный пример из серии «сломай глаза, пока заметишь разницу». Если сам составляешь эталон, можешь где-то пропустить буковку. Или ты можешь все правильно написать, а эксель после точки прописную букву заглавной сделает...
И в итоге получаешь что-то такое:
Expected: [1/Исх. строка]:Harkovskay 3. korpus1. Kvartira-1 644041
Actual: [1/Исх. строка]:Harkovskay 3. korpus1. kvartira-1 644041
Нашли отличие? Оно, конечно, не так уж сложно. А если сложно, можно использовать программу типа Araxis Merge, это решит все проблемы.
Но обычно ты просто смотришь в командной строке вывод результатов прогона и пытаешься сам оценить «Оно упало, потому что я тест криво сделал или баг заводить пора?».
И если строка длинная, то разницу в одну букву заметить сложно. Привыкаешь же к быстрому чтению, окидываешь результаты взглядом — одинаковое же! Ан нет (。•́︿•̀。)
Комментариев нет:
Отправить комментарий