тестирование работы процедур в БД

akd

dive now, work later
Команда форума
пишу в теорию, если бойан, то киньте ссылкой и выносите в мусор.

немного истории. Для одной операции, считаю деньги в двух валютах. Клиент может расчплачиваться в двух валютах, причем кейсов как он может расчитаться, достаточно много. типичные валютообменные операции. пример: клиент может внести всю сумму в валюте 1, в валюте 2, 50/50, может внести в валюте 1 больше чем надо и нужно насчитать сдачу - при этом не должны возникнуть отрицательные проводки и т.д.
На входе я знаю входные депозиты и знаю что должно вернуться 2 записи - по 1 на каждую валюту, где должны быть какие-то суммы, сдачи, курсы.

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

внимание вопрос, для таких штук существует какие-то известные продукты/подходы или я не зря изобретал?
и расскажите кто и чем пользуется, если существуют, плиз?
 

Вложения

флоппик

promotor fidei
Команда форума
Партнер клуба
внимание вопрос, для таких штук существует какие-то известные продукты/подходы или я не зря изобретал?
и расскажите кто и чем пользуется, если существуют, плиз?
Юнит-тесты именно для таких штук.
 

akd

dive now, work later
Команда форума
флоппик, меня немного смущает один момент. в юнит тесте, обьекты должны быть идентичными если я правильно понимаю.
т.е. я делаю array из рекордсета и сравниваю его с каким-то полем где висят ожидаемые результаты, так?
на самом деле мне не важно сошелся весь рекордсет или нет, меня интересуеют только 8 полей, остальные 20 могут меняться как хотят. так можно адаптировать юниты?
 

флоппик

promotor fidei
Команда форума
Партнер клуба
в юнит тесте, обьекты должны быть идентичными .... так можно адаптировать юниты?
Никому они не должны. Они должны тестировать то, что ты хочешь тестировать, а как именно - уже твое личное дело и желание объема покрытия тестами.
 

akd

dive now, work later
Команда форума
пойняв, спасиб. походу мой велосипед отличается только обьемом кода.
 
Сверху