私は、MSFT Sql Server、Oracle、およびバックエンドとしてSybaseを使用する大規模なアプリケーションのユニット/自動テストを行っています。dbとインターフェイスするためのより良い方法があるかもしれませんが、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つのベンダーすべてのサポート。