Я читаю много мнений в пользу модульного тестирования, этой процедуры я не следовал до сих пор и у меня есть несколько вопросов.
Насколько я понимаю, основы модульного тестирования состоят в том, чтобы запустить некоторые процедуры в вашем коде, сравнить возвращаемое значение с ожидаемым значением и посмотреть, соответствует ли оно, чтобы определить, прошел тест или нет.
В простых примерах, которые я видел, это достаточно просто, поскольку они были просто тестами, тестирующими целочисленные или десятичные выходные значения, которые довольно просто проверить, поскольку все происходит более или менее в памяти.
Теперь давайте представим, что у меня есть процедура, которая записывает в файл или вставляет записи в базу данных SQL Server ... всякий раз, когда я запускаю свои тесты, эти записи происходят в моем файле или на моем сервере. и, если я проведу тест несколько раз, у меня могут возникнуть проблемы ... например, нарушения первичных ключей, если записи уже были вставлены в предыдущий тест.
Я понимаю, что тесты должны проводиться на тестовом сервере, но даже в этом случае многие тесты, по-видимому, вызывают непрактичное обслуживание, например, восстановление базы данных каждый раз, когда вы хотите запустить тест, будет разочаровывающим и длительным в долгосрочной перспективе.
Короче, мне любопытно узнать, как разработчики регулярных модульных тестов управляют такого рода тестами, изменяя состояние среды простым, быстрым и экономичным и простым способом?
Спасибо.
Я в основном пишу на C # и использую VS 2008, но я думаю, это довольно общий вопрос