DbConnectionなDbを用いたメモリのデータセット(またはそれに類似するものとしてソース
-
22-08-2019 - |
質問
ようにしている単体テストまで。純る授業(デザイン理由など)を必要とDbConnectionsいます。これらの試験は、一定のメモリ上のデータを入力としてこれらのクラス.
このメモリデータが簡単に表現していDataTable(またはデータセットが含まれるDataTable)が別のクラスにより適切ない使用いただけます。
またなんとか魔法を得ることができDbConnectionが表す接続のインメモリデータ、そしてこれを構築し私の物にして実行のご質問に対するインメモリデータを出力致します。 る方法はありまを取得しDbConnectionるインメモリデータはもらえますか? 私はもともと自由置を追加して他の第三者ソフトウェアることにより、理想的には、たくないタッチのディスクの中でテストを実施していた。
解決
より消DbConnectionきの消費IDbConnection模擬ですか?いうパスは、模擬データセットである。データセットである。CreateDataReaderを返しまDataTableReaderを受け継ぎからDbDataReader.
いに包まれDbConnection自社IDbConnectionようなインタフェースに対して、キーを追加しました、ExecuteReader()メソッドを返すクラスを実装する同インターフェースはDbDataReader.当社のモックにはExecuteReaderだけを返しまうデータセットである。CreateDataReaderしています。
音のようなラウンドアバウトもとても便利でをデータセットとなresultsets.お名のDataTables後の保存procsその結果、当社のIDbConnection模擬ヘ右Datatableに基づく論文集、クライアントが呼びかける。DataTableも実施しCreateDataReaderいいます。
他のヒント
によるアプローチを使いはメモリ内Sqliteデータベースです。この場合に簡単に引っ張られます。データです。SQLite.コアNuGetパッケージをユニット試験プロジェクトではなく、意する必要はありソフトウェアです。
がるように聞こえるようなアイデアになってからでしたのDapperユニットテストができないか、と考えたものを使うことを想定しています?のGetSqliteConnection"メソッド
気をつけなければいけないの認識は、作成した場合は、メモリ内のmysql dbの作成と読み込みのテーブルが必要になり、接続を行う前にテストクエリで開く新しいメモリの接続を取得しますへの接続 新しい インメモリデータベース ない データベースにするだけ丁寧に調理しおクラスマッチも開催されます。一部の試験に使用してカスタムIDbConnection実施させることもできるようにな接続を開くこれを避けるために落とし穴-eg.
https://github.com/ProductiveRage/SqlProxyAndReplay/blob/master/Tests/StaysOpenSqliteConnection.cs
TypeMock?する必要がある'install'を使用してインストールするかまいます。
注意すると仮定するとデータ*できるだけ正フックのための試験-写最悪の場合です。ものの言いますと良いデザインの理由ではあっということになるすべての対象D