Проблема, которую вы описываете, является довольно распространенной, и ваш подход является очень типичным решением.
Проблема с этим решением состоит в том, что, если задержка слишком коротка, ваши тесты могут иногда проходить, а иногда и проваливаться, ноесли задержка очень большая, то вы просто тратите время на ожидание, и со многими тестами это может добавить большую задержку.Но если вы не можете получить сигнал о том, что заказ поступил в базу данных, вам просто нужно подождать.
Вы можете уменьшить задержку, выполняя множество проверок с короткими интервалами.Если вашего заказа нет по истечении тайм-аута, вы провалите тест.
В «Растущем объектно-ориентированном программном обеспечении, управляемом тестами» * есть глава на эту тему, поэтому вы можетехотите получить копию, если вы будете проводить большую часть такого рода тестирования.
"Есть два способа, которыми тест может наблюдать за системой: путем выборки ее наблюдаемого состояния или прослушивания событий, которыеон отправляет. Из них выборка часто является единственным вариантом, потому что многие системы не отправляют какие-либо события мониторинга. Обычно тест включает в себя оба метода взаимодействия с различными «концами» своей системы "
(*) http://my.safaribooksonline.com/book/software-engineering-and-development/software-testing/9780321574442