Я занимаюсь модульным / автоматическим тестированием большого приложения, которое использует MSFT Sql Server, Oracle, а также Sybase в качестве бэк-энда.Возможно, есть лучшие способы взаимодействия с БД, но мне нужно использовать библиотеку ODBC.Учитывая эти ограничения, есть кое-что, что мне нужно выяснить, и я буду рад вашей помощи в этом.Мои тесты действительно меняют состояние базы данных, и я ищу недорогой, 99,99% надежный способ восстановить вещи после того, как я закончу (я чувствую, что полное восстановление БД после каждого теста - слишком много штрафа).Итак, я ищу дополнение к этой функции ниже - мне нужен способ заполнить таблицу из DataSet.
private DataSet ReadFromTable(ODBCConnection connection, string tableName)
{
string selectQueryString = String.Format("select * from {0};", tableName);
DataSet dataSet = new DataSet();
using (OdbcCommand command = new OdbcCommand(selectQueryString, connection))
using (OdbcDataAdapter odbcAdapter = new OdbcDataAdapter(command))
{
odbcAdapter.Fill(dataSet);
}
return dataSet;
}
// The method that I seek.
private void WriteToTable(ODBCConnection connection, string tableName, DataSet data)
{
...
}
Я понимаю, что все может быть сложнее - что есть триггеры, что некоторые таблицы зависятна других.Однако мы практически не используем какие-либо ограничения для эффективности тестируемого приложения.Я даю вам эту информацию, так что, возможно, у вас есть предложение о том, как сделать вещи лучше / по-другому.Я открыт для разных подходов, если они хорошо работают.
Не подлежат обсуждению: MsTest
библиотека, VS2010
, C#
, библиотека ODBC, поддержка всех 3 поставщиков.