私はモックしようとしていますSqlConnection
が、これは本質的にですIDbConnection
。
そのために、テスト用にモックを準備します。
var dbConnectionMock = new Mock<IDbConnection>();
dbConnectionMock.Setup(x => x.CreateCommand()).Returns(new SqlCommand());
var repository = new XxxRepository(dbConnectionMock.Object);
リポジトリのコンストラクターは、このプロパティを設定します。
private IDbConnection Connection { get; set; }
そしてConnection
、Db を呼び出すときに使用されます。
var command = Connection.CreateCommand();
command.Connection = Connection;
// ここでは失敗します。Connection は のプロキシ タイプであるためIDbConnection
ですIDbConnectionProxy
。
プロキシの使用を避けるにはどうすればよいですか?
私がテストしたいのは、それcommand.ExecuteNonQuery()
が呼び出されたことだけです。