2015-06-24 18 views
-1

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

Заранее благодарен!

+0

Если вы фиксируете изменения, которые вы храните постоянно в базе данных , – Jens

+3

Если ваш тест включает базу данных, то это не единичный тест, это тест _integration_. –

+0

Если проверка проверяет добавленные данные, существует два варианта. a) Тест выполняется успешно, и данные добавляются в базу данных или b) Тест не выполняется, и данные не добавляются в базу данных. – Kayaman

ответ

1

Да.

Если вы не хотите что-либо менять в базе данных, используйте локальную базу данных макета или удалите вставленные данные после добавления и проверки. Собственно. вы должны ВСЕГДА удалять добавленные вами данные, так как в противном случае после первого выполнения единичный тест будет бесполезен, так как данные больше не будут добавляться, поскольку он уже существует, и утверждение всегда будет успешным.

0

Единичный тест действительно не должен вставлять данные в базу данных. Вместо этого вы должны использовать фальшивую базу данных.

Интеграционные тесты, с другой стороны, проводят многоуровневое взаимодействие таким образом.

Это связано с тем, что, во-

Тем не менее, чтобы ответить на ваш вопрос, вы должны делать свои вставки в транзакции или сеансе, которые вы можете откатить.

В качестве альтернативы вы также можете переопределить параметры соединения с источником данных в контексте приложения, чтобы указать на временный локальный in-memory database, например H2.

Другим, менее предпочтительным вариантом было бы очищение данных после завершения теста, тестового сценария или набора тестов.

Вот некоторые JUnit насмехаясь библиотеки, которые могут помочь вам транзакций базы данных тестирования:

 Смежные вопросы

  • Нет связанных вопросов^_^