Тесты для баз данных


6 0

Мне по работе понадобилось написать достаточно интересный SQL запрос c достаточно интересными расчетами. Запрос оказался размером со страницу A4, если его поместить в Word документ. Расчеты были достаточно сложными с большим количеством входных параметров. 

Если писать подобное на C# или Java, то любой опытный программист скажет, что такой код нужно покрыть тестами. Я погуглил в поисках тестов баз данных и первые несколько запросов вернули мне платные решения или сне подходящие мне, поэтому я решил написать свою собственную небольшую утилиту для тестирования запросов к базам данных, которую можно скачать здесь: https://github.com/mflenov/

Утилита написана на чистом .NET Core, поэтому она должна будет работать на любых системах, где будет работать .NET Core. 

Если клонировать себе проект, то там увидите .xml файл с примером объявления теста. 

Я набросал код за пару часов и в основном для своей задачи и там много чего еще нужно улучшать, нужна проверка на исключения (неверное подключение к базе данных или ошибка запроса), нужны более гибкие параметры тестов и можно еще много чего добавить. Если есть желание, то без проблем присоединяйся к проекту. 

Чуть позже я напишу документацию по работе с XML файлом проекта и по свободе буду добавлять функции, хотя свободны мне в ближайшее время не видать. Но если есть у тебя желание что-то добавить, я не против. 


Понравилось? Кликни Лайк, чтобы я знал, какой контент более интересен читателям. Заметку пока еще никто не лайкал и ты можешь быть первым


Комментарии

Kastor

25 Aпреля 2017

А это получился один запрос?
Может лучше было бы разбить его на несколько хранимок и сделать еще одну, которая бы использовала их все вместе? В Oracle db на храними как раз можно писать тесты.


Kastor

25 Aпреля 2017

Только что глянул гитхаб. Михаил, в мире Java я бы для подобной задачи использовал DB Unit.
https://dou.ua/lenta/articles/dbunit-basics/

Т.е. бы я написал обычный юнит тест, а db unit помог бы мне как раз подготовить бд к тесту, после выполнения запроса сделать assert того, что я хочу проверить и после этого либо очистить таблицу либо не трогать ее. Почему бы на C# не сделать что то подобное?

Просто как по мне то слишком много xml приходится написать для описания теста + CDATA так же в глаза бросается.


Леонид

25 Aпреля 2017

неплохо


Михаил Фленов

25 Aпреля 2017

1. Мне нужно было тестироваться именно вью, а не хранимку

2. На работе есть тесты, но они гонятся без подключения к базе данных. Там можно подключится, но вроде как не рекомендуют, вот я и решил написать


Рустам

04 Мая 2017

Здравствуйте Михаил. Не знаю куда написать. Читаю сейчас вашу книгу "Библия C#" в главе 13.9 Рисование элементов списка ListBox вы упоминаете что такое же рисование можно применить и на выпадающий список ComboBox и пишете что бы мы попробовали сами это сделать. Но дело в том что у меня не выходит сделать эту отрисовку. Ибо на обработчике comboBox1_DrawItem он перерисовывает айтем каждый раз при открытии выпадающего списка, и рамок не видно. А параметр DrawItemEventArgs есть вроде бы только у обработчика DrawItem.Еще вы упоминаете состояния элемента State,но нигде не показываете на примере как можно их использовать и этот момент немного не понятен.


Михаил Фленов

04 Мая 2017

email кинь мне с этим же вопросом через обратную связь здесь на сайте. Как будет свободная минута я посмотрю, что там


Добавить Комментарий

Еще что-нибудь

Хотите найти еще что-то интересное почитать? Можно попробовать отфильтровать заметки на блоге по категориям.

О блоге

Программист, автор нескольких книг серии глазами хакера и просто блогер. Интересуюсь безопасностью, хотя хакером себя не считаю

Обратная связь

Без проблем вступаю в неразборчивые разговоры по e-mail. Стараюсь отвечать на письма всех читателей вне зависимости от страны проживания, вероисповедания, на русском или английском языке.

Пишите мне