私はDALを使用したasp.netプロジェクトを持っています(ほとんどのコードは他の人からのものですが、メンテナンスとクリーンアップを行っています)。
私の Web アプリケーション プロジェクトには、次のような dataprovider クラスがあります。
public class DataProvider : IDataProvider
{
private string DefaultConnectionString
{
get
{
return ConfigurationManager.ConnectionStrings[ConfigurationManager.AppSettings["myConnection"]].ConnectionString;
}
}
public T ExecuteMyQuery<T>(parameters)
{
//executes query on db
}
この Web アプリケーション プロジェクトには、Web ページとプロバイダーの間で次のようにやり取りするデータ レイヤーがあります。
public class MyData : IMyData
{
private readonly IDataProvider dataProvider;
public MyData(IDataProvider dataProvider)
{
this.dataProvider = dataProvider;
}
public string GetTitle(string myVar)
{
//builds up stuff to send
return this.dataProvider.ExecuteMyQuery(...);
}
}
このプロジェクトの接続文字列は web.config にあります。
今、私は私のテストを持っています。単純化と時間の制約のために、私はテスト データベースのみを使用しており、実際のオブジェクトを作成し、テスト データベースに対してテストします (理論的には、より多くのモック、スタブ、およびあらゆる種類のものを使用しますが、時間はありません)。
したがって、上記の Web アプリケーション プロジェクトを参照するテスト プロジェクトがあります。
public class MyTests
{
private MyData myData;
private DataProvider dataProvider;
[SetUp]
protected void SetUp()
{
dataProvider = new DataProvider();
mysData = new MyData(dataProvider);
}
[Test]
public void CheckTitles()
{
string title = myData.GetTitle("AVariable");
Assert.AreEqual(title, "A typical title");
}
しかし、これを NUnit で実行すると、null ポインターの実行が引き続き発生します。プロバイダーが新しい接続文字列を使用してテスト データベースを指すようにするにはどうすればよいですか? app.config ファイルを追加しようとしましたが、機能しません。