2つのプロジェクト用にC#でクラスライブラリを構築しています。このクラスライブラリは、SQLServerデータベースへの多くの接続を行います。
このライブラリはSQLServerデータベースからのみデータを取得するため、接続設定の読み込みとオープンを担当する静的クラスがあります。次に、ライブラリのクラスは、クエリを実行するために必要なデータを受け取り、結果を返します。これはすべて静的メソッドを使用して行われます。
このようなもの。
internal static class DBConnection
{
private const String connectionString = "some connection string";
public static SqlConnection open() { /* ... open the connection ... */ }
}
public static class DataXRetriever
{
public static List<DataX> RetrieveById(Int32[] ids)
{
using (SqlConnection connection = DBConnection.open())
{
/* ... do a query ... */
/* ... do something with the result of the query ... */
/* ... return it ... */
}
}
/* ... some other static methods ... */
}
データベースに接続しなくても、この種のメソッドのテストユニットを作成したいのですが、接続を含むクラスをインスタンス化して、それを使用するクラスに渡すことができると読んでいます。しかし、私のデザインはそのようには機能しません。