2011-12-09 10 views
0

私はユニットテストをしたいASP.NET MVCプロジェクトを持っています。接続文字列は次のように定義されてい当社のデータベースへの呼び出しに依存している機能のほとんどは:ユニットテストASP.NET MVCプロジェクトにWeb.Configuration.WebconfigurationManagerで定義されたデータベース接続文字列

connStr.ProviderConnectionString = Web.Configuration.WebConfigurationManager.ConnectionStrings("ApplicationServices").ConnectionString 

は簡単でのdevのサーバーから各ユニットテストの火をせずにこれをテストするためにいくつかの方法があります:

<TestMethod(), _ 
HostType("ASP.NET"), _ 
AspNetDevelopmentServerHost("C:\Users\tyler.HQ\Development\LateralSports\Dev\Dev\Site", "/"), _ 
UrlToTest("http://localhost:57110/")> _ 

HostTypeを使用すると、単体テストを実行できますが、それは非常に遅いです。

スワップできる設定パラメータはありますか?

ありがとうございました

答えて

2

実際に接続文字列を取得する方がよいでしょう。オプションは次のとおりです。

  • は、そのことが何であれではなく、通常のSystem.Configuration.ConfigurationManagerを使用してください。
  • 依存性注入を使用して、それを抽象化します。
  • 単体テストのDBを完全に避けてください。結局のところ、インフラストラクチャの懸案事項です。
+0

私は最後の点に興味があります。 DBをテストしないと、データが正しく保存されているかどうかを確認するにはどうすればよいですか?私はEntityオブジェクトのほとんどをカスタムタイプに変換します(私はEntityオブジェクトの一部のみ必要です)。私は私のカスタムタイプが正しくエンティティタイプにマッピングされていることを確認する必要があります。私はこれに新しいので、私は何か奇妙なことをやっていると確信しています。 –

+2

それで、正しくマップされていることを確認してください。 EFの担当者は、データベースに正しく書き込むようにしてください。 –

+0

+1。 [リポジトリパターン](http://blogs.msdn.com/b/adonet/archive/2009/06/16/using-repository-and-unit-of-work-patterns-withentity-framework- 4-0.aspx)。 – TrueWill

関連する問題