Юнит-тестирование GUI
От: Mamut Швеция http://dmitriid.com
Дата: 29.09.15 08:26
Оценка: +1 :)
Лень писать это в соседнюю ветку на 100500 страниц, поэтому понапложу сущности без необходимости

Пара смешных людей рассказывают о том, как все подряд покрывается автоматическими тестами и прочей ерундой, и тесты на GUI пишутся на раз.

И тут у меня как раз возник момент.

Дано: рисуется в браузере график при помощи SVG. График рисуется generic-библиотекой. После того, как он отрисовался, среди прочего, делается следующее:

— берется текст, который будет заголовком графика, title
— берется нарисованый график, chart
— oldY = chart.Y
— chart.Y = chart.Y + title.height
— title.X = chart.X
— title.Y = oldY
— title.height, естественно, зависит от CSS, и, собственно, от того, как это отображается в браузере.

То есть, понятно, что график смещается вниз, и вверху рисуется заголовок.

Проблема 1. Firefox

В Safari и Chrome все правильно. В Firefox title смещается влево примерно на title.width/2.

Вопрос: как это определить автоматическими тестами, без тестирования человеком? Ну, учитывая, что автоматический тест будет использовать те же getWidth[1] и прочее, что и код

Проблема 2. Display: none -> Display: block/inline

Графики отображаются на панели, которая изначально скрыта.

— Если панель изначально раскрыта, то никаких проблем нет.
— Если панель скрыта, а потом раскрывается, то в зависимости от времени загрузки данных в график (среди прочего), те самые getWidth и прочая возвращают неправильные значения, из-за чего chart не смещается вниз, а title отображается в неправильной позиции.

Найдено тоже только при ручном тестировании. Какой автоматический тест это покроет?





[1] getBBox, getBoundingClientBox из DOM'а


dmitriid.comGitHubLinkedIn
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.