私は、私たちの製品のいずれかのユニットテストを書いているし、正常にEntity Frameworkのへの接続を模擬するために部品番号を使用されています。MoqとSqlConnection?
public static productValue findValues(string productName, string dbConnectionString)
{
try
{
SqlConnection conn = new SqlConnection(dbConnectionString);
conn.Open();
//Do stuff
}
}
渡された接続文字列を使用して、そのメソッド内で当社のデータベースにアクセスします。しかし、私は、以下の方法に遭遇しました。 Moqを使って模擬DBを設定し、模擬DBを指す接続文字列を作成することは可能ですか?私はわからないんですけれども、これは正しいアプローチであれば、これは接続自体ではなく、DBをモックと同じように私は、
var mockSqlConnnection = new Mock<SqlConnection>();
の線に沿って何かをしようとしてきました。
SqlConnectionは密閉されたクラスであると信じられないので、嘲笑することはできません。あなたはIDBConnectionをモックすることができますが、さらに多くのことがあります:このメソッドを単体テストしたい場合は、少しリファクタリングする必要があります。 – stuartd
SqlConnectionは密接なクラスです – Novastorm
[ビジネスロジックテストで嘲笑される抽象的なインターフェイスの背後にあるデータアクセスを非表示にするには、データベースを取得する最善の方法の1つは](http:// codebetter .com/jeremymiller/2005/10/12/unit-testing-business-logic-without-tripping-over-the-database /) – dee