Comments 18
UFO just landed and posted this here
А чем тестируется UI, Selenium?
0
Мы у себя такую используем самопал — DbMocks, подробности тут:
habr.com/ru/company/badoo/blog/443768
Если у вас у таблицы foreign key и триггеры, то это несколько сложнее, но раз уж вы научились это транслировать в SQLite, то наверное и свой DbMocks сделаете :)
habr.com/ru/company/badoo/blog/443768
Если у вас у таблицы foreign key и триггеры, то это несколько сложнее, но раз уж вы научились это транслировать в SQLite, то наверное и свой DbMocks сделаете :)
+1
Я если честно не силен в php, но насколько я понял автор называет главной проблемой моков —
В языках со статической типизацией мок наследуется от интерфейс и если вдруг что-то пропало — просто не скомпилируется. То есть это проблема не моков, а PHP?
Второй обнаруженный минус состоит в том, что тесты стали менее надежны. Они «не замечают» даже изменения интерфейса, не говоря уж о реализации.
В языках со статической типизацией мок наследуется от интерфейс и если вдруг что-то пропало — просто не скомпилируется. То есть это проблема не моков, а PHP?
0
C4ET4uK Верно подмечено, если бы 1) мы писали на статически-типизированном языке и 2) добавили бы небольшой оверхед в виде интерфейсов на каждый класс, на который нужен мок, то да, эта проблема бы ушла. И всё же, это не главная проблема. Для нас очень важен подход разработки через тестирование, которые меняет мышление — заставляет отвлечься от деталей реализации и подумать о конечном результате. Моки ломают этот настрой — заставляли задумываться о реализации. Это серьёзный недостаток.
+1
У нас на проекте около 4000 тестов, поведенческие, функциональные, модульные. Могу сказать из своего опыта, что более всего важны функциоальные тесты, практика черного ящика, не важно как система организована внутри, главное чтобы при передачи данных она вернула ожидаемый ответ. И да, никогда, никогда не используйте SQLite :D Система должна тестироваться с базой с которой она работает в лайве, рано или поздно вы словите неприятную ошибку, что тест падает, а функицонал работает, потом окажется, что SQLite не поддерживает что-то из MySQL или PostgreSQL.
+2
На прошлой работе также столкнулись с тем, что веб-драйвера не обнаруживали некоторые элементы, которые мы видели глазами. Сейчас это, наверное, исправлено, а тогда пришлось от них отказаться.
По поводу этой пролемы- в самом селениуме это не исправлено до сих пор. Но нашлись умные ребята, которые написали надстройку на Java, называется Selenide. Она эту проблему решает. Лично использовал ее порты под питон (Selene) и .NET. — NSelene. Работает отлично, да и куда она денется, собственно настройка заточена под решение данной проблемы.
+1
СУБД SQLite, она умеет создавать БД в оперативной памяти
Постгря тоже может работать с такой БД, если БД создана на RAM-диске. Если тесты гоняются с использованием окружения докер-композ, то нет особых сложностей подготовить докерфайл постгри, который мапит RAM-диск и БД создает в нем.
+1
Есть какие-то цифры? Во сколько раз это даёт ускорение?
0
Sign up to leave a comment.
Три года автотестов: как повысить скорость и не только